Update android.yml to write verification metadata #491
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Android CI | |
| on: | |
| push: | |
| branches: | |
| - 'main' | |
| permissions: | |
| actions: write | |
| contents: write | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| # gh api repos/actions/checkout/commits/v6 --jq '.sha' | |
| with: | |
| submodules: true | |
| - name: Retrieve commit identification | |
| run: | | |
| GIT_BRANCH=$(git name-rev --name-only HEAD) | |
| echo "GIT_BRANCH=${GIT_BRANCH}" >> $GITHUB_ENV | |
| GIT_HASH=$(git rev-parse --short HEAD) | |
| echo "GIT_HASH=${GIT_HASH}" >> $GITHUB_ENV | |
| - name: set up JDK 17 | |
| uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 | |
| # gh api repos/actions/setup-java/commits/v5 --jq '.sha' | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Validate Gradle Wrapper | |
| uses: gradle/actions/wrapper-validation@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6 | |
| # gh api repos/gradle/actions/commits/v6 --jq '.sha' | |
| - name: Decode Keystore File | |
| run: echo "${{ secrets.KEYSTORE }}" | base64 -d > $GITHUB_WORKSPACE/key.keystore | |
| - name: Write verification metadata | |
| run: ./gradlew --write-verification-metadata sha256 clean --rerun-tasks | |
| - uses: burrunan/gradle-cache-action@v3 | |
| name: Build with Gradle | |
| # Extra environment variables for Gradle execution (regular GitHub Actions feature) | |
| # Note: env must be outside of "with" | |
| with: | |
| job-id: Signal | |
| # Specifies arguments for Gradle execution | |
| arguments: | | |
| --parallel | |
| assembleBitProdRelease | |
| -Pandroid.injected.signing.store.file=${{ github.workspace }}/key.keystore | |
| -Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} | |
| -Pandroid.injected.signing.key.alias=${{ secrets.KEYALIAS }} | |
| -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} | |
| # Gradle version to use for execution: | |
| # wrapper (default), current, rc, nightly, release-nightly, or | |
| # versions like 6.6 (see https://services.gradle.org/versions/all) | |
| gradle-version: wrapper | |
| # Properties are passed as -Pname=value | |
| properties: | | |
| org.gradle.configuration-cache=true | |
| - uses: r0adkll/sign-android-release@v1 | |
| name: Sign app APK | |
| # ID used to access action output | |
| id: sign_app | |
| with: | |
| releaseDirectory: app/build/outputs/apk/bitProd/release | |
| signingKeyBase64: ${{ secrets.KEYSTORE }} | |
| alias: ${{ secrets.KEYALIAS }} | |
| keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} | |
| keyPassword: ${{ secrets.KEY_PASSWORD }} | |
| env: | |
| # override default build-tools version (29.0.3) -- optional | |
| BUILD_TOOLS_VERSION: "34.0.0" | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: Signal-Android-${{ env.GIT_HASH }} | |
| retention-days: 1 | |
| path: ${{steps.sign_app.outputs.signedReleaseFile}} | |
| - uses: SamSprung/action-github-releases@v1.0.0 | |
| with: | |
| repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
| automatic_release_tag: "8bit/${{ env.GIT_BRANCH }}" | |
| prerelease: ${{ env.GIT_BRANCH != 'main' }} | |
| title: Signal-Android-${{ env.GIT_HASH }} | |
| files: ${{steps.sign_app.outputs.signedReleaseFile}} | |
| clean: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| env: | |
| CI: true | |
| steps: | |
| - name: Purge build cache | |
| continue-on-error: true | |
| uses: MyAlbum/purge-cache@v2 | |
| with: | |
| max-age: 172800 # 1 day, default: 7 days since last use | |
| token: ${{ secrets.GITHUB_TOKEN }} |