Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: PR Checks
name: CMP Build

on:
pull_request:
Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/publish-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Publish Android Release

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
workflow_dispatch:

jobs:
publish_android_release:
name: Generate Android Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Download Android keystore
id: android_keystore
uses: timheuer/base64-to-file@v1
with:
fileName: upload-keystore.jks
encodedString: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}

- name: Create key.properties file
run: |
echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > key.properties
echo "storePassword=${{ secrets.ANDROID_STORE_PASSWORD }}" >> key.properties
echo "keyPassword=${{ secrets.ANDROID_KEY_PASSWORD }}" >> key.properties
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" >> key.properties

- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'

- uses: gradle/actions/setup-gradle@v4

- name: Start Android Release Build
run: ./gradlew composeApp:bundleRelease

- name: Upload Release Build to Artifacts
uses: actions/upload-artifact@v4
with:
name: android-release-artifacts
path: composeApp/build/outputs/bundle/release/composeApp-release.aab

- name: Release Build to production track
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.ANDROID_PLAYSTORE_ACCOUNT_KEY }}
packageName: com.nacchofer31.randomboxd
releaseFiles: composeApp/build/outputs/bundle/release/composeApp-release.aab
track: production
status: completed
5 changes: 5 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ coverage:
round: down
range: "70...100"

comment:
layout: "reach,diff,flags,tree"
behavior: default
require_changes: false

ignore:
# Android platform-specific (require device context)
- "composeApp/src/androidMain/kotlin/com/nacchofer31/randomboxd/MainActivity.kt"
Expand Down
14 changes: 14 additions & 0 deletions composeApp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.util.Properties

plugins {
alias(libs.plugins.kotlinMultiplatform)
Expand Down Expand Up @@ -146,12 +147,25 @@ android {
}
}

signingConfigs {
create("release") {
val props = Properties()
val keyPropsFile = rootProject.file("key.properties")
if (keyPropsFile.exists()) props.load(keyPropsFile.inputStream())
storeFile = props["storeFile"]?.let { file(it) }
storePassword = props["storePassword"] as String?
keyPassword = props["keyPassword"] as String?
keyAlias = props["keyAlias"] as String?
}
}

buildTypes {
debug {
enableAndroidTestCoverage = true
}
getByName("release") {
isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
}
}

Expand Down
Loading