diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f604c628..1ba0d5e9e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,6 +55,7 @@ jobs: IDE_SIGNING_KEY_PASS: ${{ secrets.IDE_SIGNING_KEY_PASS }} IDE_SIGNING_STORE_PASS: ${{ secrets.IDE_SIGNING_STORE_PASS }} IDE_SIGNING_URL: ${{ secrets.IDE_SIGNING_URL }} + IDE_SIGNING_KEY_BIN: ${{ secrets.IDE_SIGNING_KEY_BIN }} - name: Copy debug APK if: ${{ github.ref != 'refs/heads/main' }} run: cp app/build/outputs/apk/debug/**.apk ./ @@ -69,6 +70,7 @@ jobs: IDE_SIGNING_KEY_PASS: ${{ secrets.IDE_SIGNING_KEY_PASS }} IDE_SIGNING_STORE_PASS: ${{ secrets.IDE_SIGNING_STORE_PASS }} IDE_SIGNING_URL: ${{ secrets.IDE_SIGNING_URL }} + IDE_SIGNING_KEY_BIN: ${{ secrets.IDE_SIGNING_KEY_BIN }} - name: Copy release APK if: ${{ github.ref == 'refs/heads/main' }} run: cp app/build/outputs/apk/release/**.apk ./ @@ -117,6 +119,7 @@ jobs: IDE_SIGNING_KEY_PASS: ${{ secrets.IDE_SIGNING_KEY_PASS }} IDE_SIGNING_STORE_PASS: ${{ secrets.IDE_SIGNING_STORE_PASS }} IDE_SIGNING_URL: ${{ secrets.IDE_SIGNING_URL }} + IDE_SIGNING_KEY_BIN: ${{ secrets.IDE_SIGNING_KEY_BIN }} - name: Upload Test Reports if: ${{ always() }} uses: actions/upload-artifact@v3 @@ -157,6 +160,7 @@ jobs: IDE_SIGNING_KEY_PASS: ${{ secrets.IDE_SIGNING_KEY_PASS }} IDE_SIGNING_STORE_PASS: ${{ secrets.IDE_SIGNING_STORE_PASS }} IDE_SIGNING_URL: ${{ secrets.IDE_SIGNING_URL }} + IDE_SIGNING_KEY_BIN: ${{ secrets.IDE_SIGNING_KEY_BIN }} - name: Upload Test Reports if: ${{ always() }} uses: actions/upload-artifact@v3 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ad6326f26..3f0e415f2 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,5 +1,7 @@ @file:Suppress("UnstableApiUsage") +import java.util.Base64 + plugins { id("com.android.application") id("kotlin-android") @@ -167,6 +169,13 @@ fun downloadSigningKey() { return } + getEnvOrProp(KEY_BIN)?.let { bin -> + logger.info("Using $KEY_BIN for writing signing key") + val contents = Base64.getDecoder().decode(bin) + signingKey.writeBytes(contents) + return + } + // URL to download the signing key val url = getEnvOrProp(KEY_URL) ?: return diff --git a/app/src/main/assets/data/common/tooling-api-all.jar b/app/src/main/assets/data/common/tooling-api-all.jar index 6c93a1201..c65e7cf91 100644 Binary files a/app/src/main/assets/data/common/tooling-api-all.jar and b/app/src/main/assets/data/common/tooling-api-all.jar differ diff --git a/build-logic/ide/src/main/java/config.kt b/build-logic/ide/src/main/java/config.kt index 3220dc7b2..336d35673 100644 --- a/build-logic/ide/src/main/java/config.kt +++ b/build-logic/ide/src/main/java/config.kt @@ -18,12 +18,13 @@ import org.gradle.api.Project import java.io.File -val KEY_ALIAS = "IDE_SIGNING_ALIAS" -val AUTH_PASS = "IDE_SIGNING_AUTH_PASS" -val AUTH_USER = "IDE_SIGNING_AUTH_USER" -val KEY_PASS = "IDE_SIGNING_KEY_PASS" -val KEY_STORE_PASS = "IDE_SIGNING_STORE_PASS" -val KEY_URL = "IDE_SIGNING_URL" +const val KEY_ALIAS = "IDE_SIGNING_ALIAS" +const val AUTH_PASS = "IDE_SIGNING_AUTH_PASS" +const val AUTH_USER = "IDE_SIGNING_AUTH_USER" +const val KEY_PASS = "IDE_SIGNING_KEY_PASS" +const val KEY_STORE_PASS = "IDE_SIGNING_STORE_PASS" +const val KEY_URL = "IDE_SIGNING_URL" +const val KEY_BIN = "IDE_SIGNING_KEY_BIN" val Project.signingKey: File get() = rootProject.file("signing-key.jks") \ No newline at end of file