From 6f88b1977fa92fa9bca2a5a184e9d070d871659d Mon Sep 17 00:00:00 2001 From: Aditya Gupta Date: Thu, 16 May 2024 10:31:32 +0100 Subject: [PATCH] chore: start signing builds in github actions --- .github/workflows/push-event.yml | 21 +++++++++++++++++++++ app/build.gradle.kts | 9 +++++---- scripts/.gitignore | 3 +++ scripts/prep-key.sh | 5 +++++ scripts/secrets.tar.enc | Bin 0 -> 6160 bytes 5 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 scripts/.gitignore create mode 100755 scripts/prep-key.sh create mode 100644 scripts/secrets.tar.enc diff --git a/.github/workflows/push-event.yml b/.github/workflows/push-event.yml index df07f95c1..2632347d6 100644 --- a/.github/workflows/push-event.yml +++ b/.github/workflows/push-event.yml @@ -19,13 +19,34 @@ jobs: - name: Download repository uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + - name: Setup Java uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: '17' + - name: Prepare Build Keys + if: ${{ github.event_name != 'pull_request' && github.repository == 'fossasia/pslab-android' }} + env: + ENCRYPTED_F10B5E0E5262_IV: ${{ secrets.ENCRYPTED_F10B5E0E5262_IV }} + ENCRYPTED_F10B5E0E5262_KEY: ${{ secrets.ENCRYPTED_F10B5E0E5262_KEY }} + run: | + bash scripts/prep-key.sh + - name: Build with Gradle + env: + STORE_PASS: ${{ secrets.STORE_PASS }} + ALIAS: ${{ secrets.ALIAS }} + KEY_PASS: ${{ secrets.KEY_PASS }} run: | bash ./gradlew build --stacktrace bash ./gradlew bundle --stacktrace diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 53b64f6e7..cf2c4ca92 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,7 +4,8 @@ plugins { apply(plugin = "realm-android") -val keystoreExists = System.getenv("KEYSTORE_FILE") != null +val KEYSTORE_FILE = rootProject.file("scripts/key.jks") +val GITHUB_BUILD = System.getenv("GITHUB_ACTIONS") == "true" && KEYSTORE_FILE.exists() android { namespace = "io.pslab" @@ -19,9 +20,9 @@ android { } signingConfigs { - if (keystoreExists) { + if (GITHUB_BUILD) { register("release") { - storeFile = file(System.getenv("KEYSTORE_FILE")) + storeFile = KEYSTORE_FILE storePassword = System.getenv("STORE_PASS") keyAlias = System.getenv("ALIAS") keyPassword = System.getenv("KEY_PASS") @@ -41,7 +42,7 @@ android { "proguard-rules.pro" ) resValue("string", "version", "${defaultConfig.versionName}") - signingConfig = if (keystoreExists) signingConfigs.getByName("release") else null + signingConfig = if (GITHUB_BUILD) signingConfigs.getByName("release") else null } } lint { diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 000000000..916e12e4d --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1,3 @@ +*.jks +fastlane.json +secrets.tar \ No newline at end of file diff --git a/scripts/prep-key.sh b/scripts/prep-key.sh new file mode 100755 index 000000000..9a728e193 --- /dev/null +++ b/scripts/prep-key.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +openssl aes-256-cbc -K $ENCRYPTED_F10B5E0E5262_KEY -iv $ENCRYPTED_F10B5E0E5262_IV -in ./scripts/secrets.tar.enc -out ./scripts/secrets.tar -d +tar xvf ./scripts/secrets.tar -C scripts/ \ No newline at end of file diff --git a/scripts/secrets.tar.enc b/scripts/secrets.tar.enc new file mode 100644 index 0000000000000000000000000000000000000000..bd851b932247d56d3d6d982505404e529eb6d57b GIT binary patch literal 6160 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 literal 0 HcmV?d00001