diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8446e2..ecd5600 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,6 +81,14 @@ jobs: - run: npm install working-directory: mobile + - name: Android signing setup + working-directory: mobile/src-tauri/gen/android + run: | + echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties + echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties + base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks + echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties + - name: Build # uploadWorkflowArtifacts and mobile are not released uses: tauri-apps/tauri-action@a1b01e690374452a209dd44f6de089dda9003d3d diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5fc4341..167e87d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -88,22 +88,28 @@ jobs: link-to-sdk: true - name: Install Android targets - run: rustup target add aarch64-linux-android x86_64-linux-android + run: rustup target add ${{ matrix.arch }}-linux-android - run: npm install + working-directory: mobile - - name: Build - env: - NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} + - name: Android signing setup + working-directory: mobile/src-tauri/gen/android run: | - npm run tauri android build + echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties + echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties + base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks + echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties - name: Build - uses: tauri-apps/tauri-action@v0 + # uploadWorkflowArtifacts and mobile are not released + uses: tauri-apps/tauri-action@a1b01e690374452a209dd44f6de089dda9003d3d env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: + projectPath: mobile + uploadWorkflowArtifacts: true mobile: android releaseName: ${{ github.ref_name }} releaseDraft: true - args: --verbose --debug --apk --split-per-abi ${{ matrix.args }} + args: --verbose --apk --split-per-abi --target ${{ matrix.tauri_target }} diff --git a/mobile/src-tauri/gen/android/app/build.gradle.kts b/mobile/src-tauri/gen/android/app/build.gradle.kts index eeb4cea..864f56f 100644 --- a/mobile/src-tauri/gen/android/app/build.gradle.kts +++ b/mobile/src-tauri/gen/android/app/build.gradle.kts @@ -1,3 +1,4 @@ +import java.io.FileInputStream import java.util.Properties plugins { @@ -24,6 +25,20 @@ android { versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") } + signingConfigs { + create("release") { + val keystorePropertiesFile = rootProject.file("keystore.properties") + val keystoreProperties = Properties() + if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) + } + + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["password"] as String + storeFile = file(keystoreProperties["storeFile"] as String) + storePassword = keystoreProperties["password"] as String + } + } buildTypes { getByName("debug") { manifestPlaceholders["usesCleartextTraffic"] = "true" @@ -37,6 +52,7 @@ android { } } getByName("release") { + signingConfig = signingConfigs.getByName("release") isMinifyEnabled = true proguardFiles( *fileTree(".") { include("**/*.pro") } diff --git a/mobile/src-tauri/gen/android/keystore.properties b/mobile/src-tauri/gen/android/keystore.properties new file mode 100644 index 0000000..5de3490 --- /dev/null +++ b/mobile/src-tauri/gen/android/keystore.properties @@ -0,0 +1,3 @@ +keyAlias=placeholder +password=placeholder +storeFile=placeholder \ No newline at end of file