mirror of
https://github.com/pachli/pachli-android.git
synced 2024-12-11 08:36:40 +01:00
d434144922
Start building infrastructure to automatically build and deploy the `orangeRelease` variant to Google Play. The variant needs an automatically incrementing `versionCode`. That is derived from the count of all commits. Change the separator between the version and the build metadata in the `versionName` from `-` to `+` to be consistent with semantic versioning. This is still an experiment, so the workflow is triggered manually and only uploads to the internal track
87 lines
2.7 KiB
YAML
87 lines
2.7 KiB
YAML
name: Upload orangeRelease to Google Play
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: Build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-java@v3
|
|
with:
|
|
java-version: '17'
|
|
distribution: 'temurin'
|
|
|
|
- name: Gradle Wrapper Validation
|
|
uses: gradle/wrapper-validation-action@v1
|
|
|
|
- name: Copy CI gradle.properties
|
|
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
|
|
|
|
- name: Gradle Build Action
|
|
uses: gradle/gradle-build-action@v2
|
|
with:
|
|
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
|
|
|
|
- name: Test
|
|
run: ./gradlew app:testOrangeReleaseUnitTest --stacktrace
|
|
|
|
- name: Build APK
|
|
run: ./gradlew assembleOrangeRelease --stacktrace
|
|
|
|
- name: Build AAB
|
|
run: ./gradlew :app:bundleOrangeRelease --stacktrace
|
|
|
|
- uses: r0adkll/sign-android-release@v1.0.4
|
|
name: Sign app APK
|
|
id: sign_app_apk
|
|
with:
|
|
releaseDirectory: app/build/outputs/apk/orange/release
|
|
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
|
|
alias: ${{ secrets.SIGNING_KEY_ALIAS }}
|
|
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
env:
|
|
BUILD_TOOLS_VERSION: "34.0.0"
|
|
|
|
- uses: r0adkll/sign-android-release@v1.0.4
|
|
name: Sign app AAB
|
|
id: sign_app_aab
|
|
with:
|
|
releaseDirectory: app/build/outputs/bundle/orangeRelease
|
|
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
|
|
alias: ${{ secrets.SIGNING_KEY_ALIAS }}
|
|
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
env:
|
|
BUILD_TOOLS_VERSION: "34.0.0"
|
|
|
|
- name: Upload APK Release Asset
|
|
id: upload-release-asset-apk
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: app-release.apk
|
|
path: ${{steps.sign_app_apk.outputs.signedReleaseFile}}
|
|
|
|
- name: Generate whatsnew
|
|
id: generate-whatsnew
|
|
run: |
|
|
mkdir -p googleplay/whatsnew
|
|
git log -1 --pretty=format:"%s" > googleplay/whatsnew/whatsnew-en-US
|
|
|
|
- name: Upload AAB to Google Play
|
|
id: upload-release-asset-aab
|
|
uses: r0adkll/upload-google-play@v1.1.2
|
|
with:
|
|
serviceAccountJsonPlainText: ${{ secrets.PLAY_SERVICE_ACCOUNT_KEY }}
|
|
packageName: app.pachli.current
|
|
releaseFiles: ${{steps.sign_app_aab.outputs.signedReleaseFile}}
|
|
track: internal
|
|
whatsNewDirectory: googleplay/whatsnew
|
|
status: completed
|
|
mappingFile: app/build/outputs/mapping/orangeRelease/mapping.txt
|