Skip to content

Commit 7d6ecd1

Browse files
committed
uplift(release): feat(ci): automate versionName bump for point release in shippable builds
Adds pointRelease to workflow_dispatch to optionally bump the point version (e.g. 21.0 -> 21.1). Additionally, rearranges the order of worflow_dispatch inputs to put pointRelease and skipBetaBump at the top, as they are the more commonly used inputs. (cherry picked from commit 8eaf03f)
1 parent 6b0cc4e commit 7d6ecd1

1 file changed

Lines changed: 35 additions & 10 deletions

File tree

.github/workflows/shippable_builds.yml

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ on:
44
workflow_call:
55
workflow_dispatch:
66
inputs:
7+
pointRelease:
8+
type: boolean
9+
description: Bump minor versionName (e.g. 21.0 -> 21.1) for a point release
10+
skipBetaBump:
11+
type: boolean
12+
description: Skip version bump (beta)
713
skipThunderbird:
814
type: boolean
915
description: Skip building Thunderbird
@@ -13,9 +19,6 @@ on:
1319
skipTests:
1420
type: boolean
1521
description: Skip running tests
16-
skipBetaBump:
17-
type: boolean
18-
description: Skip version bump (beta)
1922
skipGooglePlay:
2023
type: boolean
2124
description: Skip Google Play publish
@@ -73,10 +76,11 @@ jobs:
7376
env:
7477
matrixInclude: ${{ vars.MATRIX_INCLUDE }}
7578
releaseType: ${{ vars.RELEASE_TYPE }}
79+
pointRelease: ${{ inputs.pointRelease }}
80+
skipBetaBump: ${{ inputs.skipBetaBump }}
7681
skipThunderbird: ${{ inputs.skipThunderbird }}
7782
skipK9Mail: ${{ inputs.skipK9Mail }}
7883
skipTests: ${{ inputs.skipTests }}
79-
skipBetaBump: ${{ inputs.skipBetaBump }}
8084
skipGooglePlay: ${{ inputs.skipGooglePlay }}
8185
draftGooglePlay: ${{ inputs.draftGooglePlay }}
8286
skipFtp: ${{ inputs.skipFtp }}
@@ -125,6 +129,12 @@ jobs:
125129
])
126130
.write();
127131
132+
if (process.env.pointRelease == "true" && process.env.releaseType == "release") {
133+
await core.summary.addList(["Point release: minor versionName will be bumped"]).write();
134+
}
135+
if (process.env.skipBetaBump == "true" && process.env.releaseType == "beta") {
136+
await core.summary.addList(["Beta bump is being skipped"]).write();
137+
}
128138
if (skipThunderbird) {
129139
await core.summary.addList(["Thunderbird build is being skipped"]).write();
130140
}
@@ -134,9 +144,6 @@ jobs:
134144
if (process.env.skipTests == "true") {
135145
await core.summary.addList(["Tests are being skipped"]).write();
136146
}
137-
if (process.env.skipBetaBump == "true" && process.env.releaseType == "beta") {
138-
await core.summary.addList(["Beta bump is being skipped"]).write();
139-
}
140147
if (process.env.skipGooglePlay == "true") {
141148
await core.summary.addList(["Play Store upload is being skipped"]).write();
142149
}
@@ -314,6 +321,24 @@ jobs:
314321
315322
cat $GITHUB_OUTPUT
316323
324+
- name: Bump version name (point release)
325+
id: bump_version_name
326+
if: ${{ inputs.pointRelease && contains(matrix.releaseTarget, 'github') && vars.RELEASE_TYPE == 'release' }}
327+
shell: bash
328+
env:
329+
APP_NAME: ${{ matrix.appName }}
330+
OLD_VERSION_NAME: ${{ steps.appinfo.outputs.VERSION_NAME }}
331+
run: |
332+
NEW_VERSION_NAME=$(echo "$OLD_VERSION_NAME" | awk -F '.' '{print $1"."$2+1}')
333+
sed "s/versionName = \"$OLD_VERSION_NAME\"/versionName = \"$NEW_VERSION_NAME\"/" app-${APP_NAME}/build.gradle.kts > tmp_gradle_kts
334+
335+
! diff -u app-${APP_NAME}/build.gradle.kts tmp_gradle_kts # flip return value to force error if no bump
336+
mv tmp_gradle_kts app-${APP_NAME}/build.gradle.kts
337+
338+
echo "VERSION_NAME=${NEW_VERSION_NAME}" >> $GITHUB_OUTPUT
339+
340+
cat $GITHUB_OUTPUT
341+
317342
- name: Render Release Notes
318343
id: render_notes
319344
if: "${{ contains(matrix.releaseTarget, 'github') && contains(fromJSON('[\"beta\", \"release\"]'), needs.dump_config.outputs.releaseType) }}"
@@ -323,7 +348,7 @@ jobs:
323348
APPLICATION_ID: ${{ steps.appinfo.outputs.APPLICATION_ID }}
324349
APPLICATION_LABEL: ${{ steps.appinfo.outputs.APPLICATION_LABEL }}
325350
VERSION_CODE: ${{ steps.new_version_code.outputs.new_version_code }}
326-
FULL_VERSION_NAME: ${{ steps.appinfo.outputs.VERSION_NAME }}${{ steps.bump_version_suffix.outputs.SUFFIX || steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
351+
FULL_VERSION_NAME: ${{ steps.bump_version_name.outputs.VERSION_NAME || steps.appinfo.outputs.VERSION_NAME }}${{ steps.bump_version_suffix.outputs.SUFFIX || steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
327352
run: |
328353
mkdir -p ./app-metadata/${APPLICATION_ID}/en-US/changelogs
329354
GITHUB_NOTES_FILE="$(mktemp -d)/long-notes.txt"
@@ -363,7 +388,7 @@ jobs:
363388
APPLICATION_LABEL: ${{ steps.appinfo.outputs.APPLICATION_LABEL }}
364389
APPLICATION_ID: ${{ steps.appinfo.outputs.APPLICATION_ID }}
365390
APP_NAME: ${{ matrix.appName }}
366-
FULL_VERSION_NAME: ${{ steps.appinfo.outputs.VERSION_NAME }}${{ steps.bump_version_suffix.outputs.SUFFIX || steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
391+
FULL_VERSION_NAME: ${{ steps.bump_version_name.outputs.VERSION_NAME || steps.appinfo.outputs.VERSION_NAME }}${{ steps.bump_version_suffix.outputs.SUFFIX || steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
367392
RELEASE_TYPE: ${{ vars.RELEASE_TYPE }}
368393
APP_SLUG: ${{ steps.app-token.outputs.app-slug || 'github-actions'}}
369394
APP_USER_ID: ${{ vars.BOT_USER_ID || '41898282' }}
@@ -408,7 +433,7 @@ jobs:
408433
applicationId: ${{ steps.appinfo.outputs.APPLICATION_ID }}
409434
oldFullVersion: ${{ steps.appinfo.outputs.VERSION_NAME }}${{ steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
410435
oldVersionCode: ${{ steps.new_version_code.outputs.old_version_code }}
411-
newFullVersion: ${{ steps.appinfo.outputs.VERSION_NAME }}${{ steps.bump_version_suffix.outputs.SUFFIX || steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
436+
newFullVersion: ${{ steps.bump_version_name.outputs.VERSION_NAME || steps.appinfo.outputs.VERSION_NAME }}${{ steps.bump_version_suffix.outputs.SUFFIX || steps.appinfo.outputs.VERSION_NAME_SUFFIX }}
412437
newVersionCode: ${{ steps.new_version_code.outputs.new_version_code }}
413438
releaseType: ${{ vars.RELEASE_TYPE }}
414439
with:

0 commit comments

Comments
 (0)