Build Test Harness #119
Workflow file for this run
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: Build Test Harness | |
| on: | |
| push: | |
| paths: | |
| - testharness/** | |
| workflow_dispatch: | |
| inputs: | |
| version-name: | |
| description: "Optional. Version string to use, in X.Y.Z format. Overrides default in the project." | |
| required: false | |
| type: string | |
| version-code: | |
| description: "Optional. Build number to use. Overrides default of GitHub run number." | |
| required: false | |
| type: number | |
| patch_version: | |
| description: "Order 999 - Overrides Patch version" | |
| type: boolean | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| permissions: | |
| contents: read | |
| packages: read | |
| jobs: | |
| version: | |
| name: Calculate Version Name and Number | |
| uses: bitwarden/android/.github/workflows/_version.yml@main | |
| with: | |
| app_codename: "bwpm" | |
| base_version_number: 0 | |
| version_name: ${{ inputs.version-name }} | |
| version_number: ${{ inputs.version-code }} | |
| patch_version: ${{ inputs.patch_version && '999' || '' }} | |
| build: | |
| name: Build Test Harness | |
| runs-on: ubuntu-24.04 | |
| needs: version | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Log inputs to job summary | |
| uses: bitwarden/android/.github/actions/log-inputs@main | |
| with: | |
| inputs: "${{ toJson(inputs) }}" | |
| - name: Check out repo | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Log in to Azure | |
| uses: bitwarden/gh-actions/azure-login@main | |
| with: | |
| subscription_id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
| tenant_id: ${{ secrets.AZURE_TENANT_ID }} | |
| client_id: ${{ secrets.AZURE_CLIENT_ID }} | |
| - name: Get Azure Key Vault secrets | |
| id: get-kv-secrets | |
| uses: bitwarden/gh-actions/get-keyvault-secrets@main | |
| with: | |
| keyvault: gh-android | |
| secrets: "TESTHARNESS-KEYSTORE-STORE-PASSWORD,TESTHARNESS-KEYSTORE-KEY-PASSWORD" | |
| - name: Retrieve keystore | |
| env: | |
| ACCOUNT_NAME: bitwardenci | |
| CONTAINER_NAME: mobile | |
| run: | | |
| mkdir -p ${{ github.workspace }}/keystores | |
| az storage blob download --account-name "$ACCOUNT_NAME" --container-name "$CONTAINER_NAME" \ | |
| --name testharness_apk-keystore.jks --file ${{ github.workspace }}/keystores/testharness_apk-keystore.jks --output none | |
| - name: AZ Logout | |
| uses: bitwarden/gh-actions/azure-logout@main | |
| - name: Setup Android Build | |
| uses: ./.github/actions/setup-android-build | |
| - name: Increment version | |
| env: | |
| VERSION_CODE: ${{ needs.version.outputs.version_number || github.run_number }} | |
| VERSION_NAME: ${{ needs.version.outputs.version_name }} | |
| run: ./.github/scripts/set-build-version.sh "$VERSION_CODE" "$VERSION_NAME" | |
| - name: Build and sign Test Harness Release APK | |
| env: | |
| STORE_PASSWORD: ${{ steps.get-kv-secrets.outputs.TESTHARNESS-KEYSTORE-STORE-PASSWORD }} | |
| KEY_PASSWORD: ${{ steps.get-kv-secrets.outputs.TESTHARNESS-KEYSTORE-KEY-PASSWORD }} | |
| run: | | |
| bundle exec fastlane buildTestHarnessRelease \ | |
| storeFile:"${{ github.workspace }}/keystores/testharness_apk-keystore.jks" \ | |
| storePassword:"$STORE_PASSWORD" \ | |
| keyAlias:"bitwardentestharness" \ | |
| keyPassword:"$KEY_PASSWORD" | |
| - name: Upload Test Harness Release APK | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: com.bitwarden.testharness-release.apk | |
| path: testharness/build/outputs/apk/release/com.bitwarden.testharness.apk | |
| if-no-files-found: error | |
| - name: Create checksum for Test Harness Release APK | |
| run: | | |
| sha256sum "testharness/build/outputs/apk/release/com.bitwarden.testharness.apk" \ | |
| > ./com.bitwarden.testharness.apk-sha256.txt | |
| - name: Upload Test Harness Release SHA file | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: com.bitwarden.testharness.apk-sha256.txt | |
| path: ./com.bitwarden.testharness.apk-sha256.txt | |
| if-no-files-found: error |