Skip to content

Bump App Version

Bump App Version #68

Workflow file for this run

name: Bump App Version
on:
workflow_dispatch:
inputs:
type:
description: 'Bump type'
required: true
default: 'patch'
type: choice
options:
- patch
- minor
- major
releaseNote:
description: 'Release Note'
required: true
type: string
jobs:
bump:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 🏗 Bump App Version
id: bump-app-version
run: |
newVersion=$(bash ./scripts/versionBump.sh $TYPE "$RELEASE_NOTES")
echo "::newVersion::$newVersion"
echo "newVersion=$newVersion" >> "$GITHUB_OUTPUT"
env:
TYPE: ${{ inputs.type }}
RELEASE_NOTES: ${{ inputs.releaseNote }}
- name: Git Add and Commit
run: |
git config --global user.name 'Yogesh Choudhary Paliyal'
git config --global user.email 'yogeshpaliyal@users.noreply.github.com'
git add .
git commit -am "Github Actions: App version Bumped to ${{ steps.bump-app-version.outputs.newVersion }}"
- name: Print newVersion
run: echo "${{ steps.bump-app-version.outputs.newVersion }}"
- name: Build Free Release AAB
id: buildFreeRelease
run: ./gradlew bundleFreeRelease
- name: Build Pro Release AAB
id: buildProRelease
run: ./gradlew bundleProRelease
- name: Sign Free AAB
id: signPro
uses: r0adkll/sign-android-release@fix/bundle-signing
with:
releaseDirectory: app/build/outputs/bundle/freeRelease
signingKeyBase64: ${{ secrets.SIGNING_KEY_WITH_PRO }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Sign Pro AAB
id: sign
uses: r0adkll/sign-android-release@fix/bundle-signing
with:
releaseDirectory: app/build/outputs/bundle/proRelease
signingKeyBase64: ${{ secrets.SIGNING_KEY_WITH_PRO }}
alias: pro
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Push to protected branch
uses: CasperWA/push-protected@v2
with:
token: ${{ secrets.PUSH_TO_PROTECTED_BRANCH }}
branch: master
unprotect_reviews: true
- name: Git push tag
run: |
git tag -a ${{ steps.bump-app-version.outputs.newVersion }} -m "Release version ${{ steps.bump-app-version.outputs.newVersion }}"
git push origin ${{ steps.bump-app-version.outputs.newVersion }}
- name: Create Release
uses: ncipollo/release-action@v1.16.0
with:
tag: "${{ steps.bump-app-version.outputs.newVersion }}"
generateReleaseNotes: true
commit: "master"
discussionCategory: "Release feedbacks"
makeLatest: true
- name: Upload free aab to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: 'app/build/outputs/bundle/freeRelease/app-free-release.aab'
asset_name: 'keypass-free-${{steps.bump-app-version.outputs.newVersion}}.aab'
tag: ${{ steps.bump-app-version.outputs.newVersion }}
overwrite: true
- name: Upload pro aab to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: 'app/build/outputs/bundle/proRelease/app-pro-release.aab'
asset_name: 'keypass-pro-${{steps.bump-app-version.outputs.newVersion}}.aab'
tag: ${{ steps.bump-app-version.outputs.newVersion }}
overwrite: true
- uses: snnaplab/universal-apk-generate-action@v1
id: apk-free-generate
with:
aab-path: 'app/build/outputs/bundle/freeRelease/app-free-release.aab'
keystore-base64: ${{ secrets.SIGNING_KEY_WITH_PRO }}
keystore-password: ${{ secrets.KEY_STORE_PASSWORD }}
key-alias: ${{ secrets.ALIAS }}
key-password: ${{ secrets.KEY_PASSWORD }}
- name: Upload free binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ steps.apk-free-generate.outputs.apk-path }}
asset_name: 'keypass-free-${{steps.bump-app-version.outputs.newVersion}}.apk'
tag: ${{ steps.bump-app-version.outputs.newVersion }}
overwrite: true
- name: Remove universal directory
run: rm -r /home/runner/work/snnaplab-universal-apk-generate-action
- uses: snnaplab/universal-apk-generate-action@v1
id: apk-pro-generate
with:
aab-path: 'app/build/outputs/bundle/proRelease/app-pro-release.aab'
keystore-base64: ${{ secrets.SIGNING_KEY_WITH_PRO }}
keystore-password: ${{ secrets.KEY_STORE_PASSWORD }}
key-alias: pro
key-password: ${{ secrets.KEY_PASSWORD }}
- name: Upload pro binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ steps.apk-pro-generate.outputs.apk-path }}
tag: ${{ steps.bump-app-version.outputs.newVersion }}
asset_name: 'keypass-pro-${{ steps.bump-app-version.outputs.newVersion }}.apk'
overwrite: true