From 197b0b380c81cf95c54fbbe20b039268b8bb0449 Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Tue, 8 Sep 2026 10:52:02 -0400 Subject: [PATCH] fix(ci): pass the release keystore to Gradle as an absolute path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The release build has failed since the AGP 9.4.0 bump: Execution failed for task ':apps:flipcash:app:validateSigningRelease'. > Keystore file '/home/runner/.gradle/daemon/9.7.1/key/key' not found for signing config 'externalOverride'. `base64-to-file` reports a workspace-relative `key/key`, which the workflow passed straight through as `android.injected.signing.store.file`. AGP resolves that property against the Gradle daemon's working directory rather than the project, so it looked for the keystore under `~/.gradle/daemon/9.7.1/`. Prefix the path with `github.workspace`. That also retires the second decode into `apps/flipcash/app/key/` — it only existed to cover the module-relative resolution, and nothing in the build reads that location. --- .github/workflows/build-fcash2-upload-android.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-fcash2-upload-android.yml b/.github/workflows/build-fcash2-upload-android.yml index e97f30fae2..e0f84cb8ee 100644 --- a/.github/workflows/build-fcash2-upload-android.yml +++ b/.github/workflows/build-fcash2-upload-android.yml @@ -127,7 +127,7 @@ jobs: fileDir: ./apps/flipcash/app/src encodedString: ${{ secrets.FLIPCASH2_GOOGLE_SERVICES }} - - name: Decode Upload Key Store file into location 1 + - name: Decode Upload Key Store file uses: timheuer/base64-to-file@v1 id: signing_key with: @@ -135,13 +135,6 @@ jobs: fileDir: ./key encodedString: ${{ secrets.UPLOAD_KEY_STORE }} - - name: Decode Upload Key Store file into location 2 - uses: timheuer/base64-to-file@v1 - with: - fileName: key - fileDir: ./apps/flipcash/app/key - encodedString: ${{ secrets.UPLOAD_KEY_STORE }} - - name: Setup BugSnag API Key run: echo BUGSNAG_API_KEY=\"${{ secrets.FLIPCASH_BUGSNAG_API_KEY }}\" > ./local.properties @@ -157,7 +150,10 @@ jobs: - name: Build release run: bundle exec fastlane android build_flipcash env: - STORE_FILE: ${{ steps.signing_key.outputs.filePath }} + # base64-to-file reports a workspace-relative path, and AGP resolves + # android.injected.signing.store.file against the Gradle daemon's working + # directory, not the project — so pass it absolute. + STORE_FILE: ${{ github.workspace }}/${{ steps.signing_key.outputs.filePath }} STORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEY_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}