diff --git a/.github/workflows/android-build-publish.yml b/.github/workflows/android-build-publish.yml new file mode 100644 index 0000000..16a0bbf --- /dev/null +++ b/.github/workflows/android-build-publish.yml @@ -0,0 +1,46 @@ +name: Android CI + +on: + push: + branches: [ "master" ] + +env: + KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} + RELEASE_SIGN_KEY_ALIAS: ${{ secrets.RELEASE_SIGN_KEY_ALIAS }} + RELEASE_SIGN_KEY_PASSWORD: ${{ secrets.RELEASE_SIGN_KEY_PASSWORD }} + +jobs: + build_apk_aab: + runs-on: ubuntu-latest + name: Build artifacts + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build and sign debug APKs + run: ./gradlew assembleDebug + + - name: Upload debug APK + uses: actions/upload-artifact@v4 + with: + name: app-debug.apk + path: composeApp/build/outputs/apk/debug/composeApp-debug.apk + + - name: Build and sign release APKs + run: ./gradlew assembleRelease + + - name: Upload release APK + uses: actions/upload-artifact@v4 + with: + name: app-release.apk + path: composeApp/build/outputs/apk/release/composeApp-release.apk diff --git a/.github/workflows/docker-publish-wasm.yml b/.github/workflows/docker-publish-wasm.yml index 001c303..44e6657 100644 --- a/.github/workflows/docker-publish-wasm.yml +++ b/.github/workflows/docker-publish-wasm.yml @@ -1,4 +1,4 @@ -name: Docker +name: Wasm on: pull_request: diff --git a/.gitignore b/.gitignore index d549b84..532ca90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -*.iml .gradle .idea .kotlin @@ -45,3 +44,4 @@ google-services.json # Android Profiling *.hprof +/composeApp/src/androidMain/keystore/keystore.properties diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 42c90a9..f3a6c08 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig +import java.util.* plugins { alias(libs.plugins.multiplatform) @@ -140,7 +141,7 @@ android { minSdk = 26 targetSdk = 35 - applicationId = "dev.meloda.overseerr.androidApp" + applicationId = "dev.meloda.overseerr" versionCode = 1 versionName = "1.0.0" @@ -157,8 +158,36 @@ android { } } } + signingConfigs { + create("release") { + val keystoreProperties = Properties() + val keystorePropertiesFile = file("./src/androidMain/keystore/keystore.properties") + + storeFile = file("./src/androidMain/keystore/keystore.jks") + + if (keystorePropertiesFile.exists()) { + keystorePropertiesFile.inputStream().let(keystoreProperties::load) + storePassword = keystoreProperties.getProperty("storePassword") + keyAlias = keystoreProperties.getProperty("keyAlias") + keyPassword = keystoreProperties.getProperty("keyPassword") + } else { + storePassword = System.getenv("KEYSTORE_PASSWORD") + keyAlias = System.getenv("RELEASE_SIGN_KEY_ALIAS") + keyPassword = System.getenv("RELEASE_SIGN_KEY_PASSWORD") + } + } + + create("debugSigning") { + initWith(getByName("release")) + } + } buildTypes { + getByName("debug") { + signingConfig = signingConfigs.getByName("debugSigning") + } getByName("release") { + signingConfig = signingConfigs.getByName("release") + isMinifyEnabled = false } } @@ -184,7 +213,7 @@ compose.desktop { nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "dev.meloda.overseerr.desktopApp" + packageName = "dev.meloda.overseerr" packageVersion = "1.0.0" } } diff --git a/composeApp/src/androidMain/keystore/keystore.jks b/composeApp/src/androidMain/keystore/keystore.jks new file mode 100644 index 0000000..1d39b90 Binary files /dev/null and b/composeApp/src/androidMain/keystore/keystore.jks differ diff --git a/composeApp/src/wasmJsMain/resources/index.html b/composeApp/src/wasmJsMain/resources/index.html index 0be283f..d88af02 100644 --- a/composeApp/src/wasmJsMain/resources/index.html +++ b/composeApp/src/wasmJsMain/resources/index.html @@ -3,10 +3,10 @@
-