Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 29e4205

Browse files
authored
ci(scripts): add support for --force in release.sh (#8469)
1 parent ffc28e6 commit 29e4205

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

scripts/release.sh

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cdroot
77

88
usage() {
99
cat <<EOH
10-
Usage: ./release.sh [--dry-run] [-h | --help] [--ref <ref>] [--major | --minor | --patch]
10+
Usage: ./release.sh [--dry-run] [-h | --help] [--ref <ref>] [--major | --minor | --patch] [--force]
1111
1212
This script should be called to create a new release.
1313
@@ -33,6 +33,9 @@ Flags:
3333
Set --major or --minor to force a larger version bump, even when there are no
3434
breaking changes. By default a patch version will be created, --patch is no-op.
3535
36+
Set --force force the provided increment to be used (e.g. --patch), even if
37+
there are breaking changes, etc.
38+
3639
Set --ref if you need to specify a specific commit that the new version will
3740
be tagged at, otherwise the latest commit will be used.
3841
@@ -44,8 +47,9 @@ branch=main
4447
dry_run=0
4548
ref=
4649
increment=
50+
force=0
4751

48-
args="$(getopt -o h -l dry-run,help,ref:,major,minor,patch -- "$@")"
52+
args="$(getopt -o h -l dry-run,help,ref:,major,minor,patch,force -- "$@")"
4953
eval set -- "$args"
5054
while true; do
5155
case "$1" in
@@ -68,6 +72,10 @@ while true; do
6872
increment=${1#--}
6973
shift
7074
;;
75+
--force)
76+
force=1
77+
shift
78+
;;
7179
--)
7280
shift
7381
break
@@ -112,8 +120,12 @@ trap 'log "Check commit metadata failed, you can try to set \"export CODER_IGNOR
112120
source "$SCRIPT_DIR/release/check_commit_metadata.sh" "$old_version" "$ref"
113121
trap - EXIT
114122

123+
tag_version_args=(--old-version "$old_version" --ref "$ref" --"$increment")
124+
if ((force == 1)); then
125+
tag_version_args+=(--force)
126+
fi
115127
log "Executing DRYRUN of release tagging..."
116-
new_version="$(execrelative ./release/tag_version.sh --old-version "$old_version" --ref "$ref" --"$increment" --dry-run)"
128+
new_version="$(execrelative ./release/tag_version.sh "${tag_version_args[@]}" --dry-run)"
117129
log
118130
read -p "Continue? (y/n) " -n 1 -r continue_release
119131
log
@@ -139,7 +151,7 @@ fi
139151
log
140152
# Run without dry-run to actually create the tag, note we don't update the
141153
# new_version variable here to ensure we're pushing what we showed before.
142-
maybedryrun "$dry_run" execrelative ./release/tag_version.sh --old-version "$old_version" --ref "$ref" --"$increment" >/dev/null
154+
maybedryrun "$dry_run" execrelative ./release/tag_version.sh "${tag_version_args[@]}" >/dev/null
143155
maybedryrun "$dry_run" git push --tags -u origin "$new_version"
144156

145157
if ((dry_run)); then

scripts/release/tag_version.sh

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ dry_run=0
2626
old_version=
2727
ref=HEAD
2828
increment=
29+
force=0
2930

30-
args="$(getopt -o h -l dry-run,help,old-version:,ref:,major,minor,patch -- "$@")"
31+
args="$(getopt -o h -l dry-run,help,old-version:,ref:,major,minor,patch,force -- "$@")"
3132
eval set -- "$args"
3233
while true; do
3334
case "$1" in
@@ -54,6 +55,10 @@ while true; do
5455
increment=${1#--}
5556
shift
5657
;;
58+
--force)
59+
force=1
60+
shift
61+
;;
5762
--)
5863
shift
5964
break
@@ -90,7 +95,12 @@ if ((COMMIT_METADATA_BREAKING == 1)); then
9095
increment=minor
9196
fi
9297
if [[ $prev_increment != "$increment" ]]; then
93-
log "Breaking change detected, changing version increment from \"$prev_increment\" to \"$increment\"."
98+
if ((force == 1)); then
99+
log "Breaking change detected but --force provided, would use \"$increment\" but keeping \"$prev_increment\"."
100+
increment=$prev_increment
101+
else
102+
log "Breaking change detected, changing version increment from \"$prev_increment\" to \"$increment\"."
103+
fi
94104
else
95105
log "Breaking change detected, provided increment is sufficient, using \"$increment\" increment."
96106
fi

0 commit comments

Comments
 (0)