Skip to content

Commit 8efbd22

Browse files
committed
signing key for dev-preview
1 parent 0496c60 commit 8efbd22

File tree

6 files changed

+66
-8
lines changed

6 files changed

+66
-8
lines changed

.github/workflows/build_benchmark.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ jobs:
8383
uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2
8484

8585
- name: Build Benchmark app and run unit tests
86-
run: ./gradlew assembleDevBenchmark testDevBenchmarkUnitTest testReleaseUnitTest --stacktrace
86+
run: ./gradlew assembleDevBenchmark testDevBenchmarkUnitTest testReleaseUnitTest -Pandroid.signingConfig=debug --stacktrace
8787

8888
- name: Upload artifacts
8989
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4

.github/workflows/build_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
echo "VERSION_TAG=$version_tag" >> $GITHUB_OUTPUT
8383
echo "COMMIT_COUNT=$commit_count"
8484
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_OUTPUT
85-
mv app/build/outputs/apk/standard/preview/app-standard-universal-preview-signed.apk Komikku-$version_tag-r$commit_count.apk
85+
mv app/build/outputs/apk/standard/preview/app-standard-universal-preview-unsigned-signed.apk Komikku-$version_tag-r$commit_count.apk
8686
8787
- name: Upload APK
8888
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4

.github/workflows/build_preview.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,23 +192,23 @@ jobs:
192192
run: |
193193
set -e
194194
195-
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-universal-preview-signed.apk Komikku-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
195+
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-universal-preview-unsigned-signed.apk Komikku-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
196196
sha=`sha256sum Komikku-${{ needs.prepare-build.outputs.TAG_NAME }}.apk | awk '{ print $1 }'`
197197
echo "APK_UNIVERSAL_SHA=$sha" >> $GITHUB_OUTPUT
198198
199-
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-arm64-v8a-preview-signed.apk Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
199+
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-arm64-v8a-preview-unsigned-signed.apk Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
200200
sha=`sha256sum Komikku-arm64-v8a-${{ needs.prepare-build.outputs.TAG_NAME }}.apk | awk '{ print $1 }'`
201201
echo "APK_ARM64_V8A_SHA=$sha" >> $GITHUB_OUTPUT
202202
203-
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-armeabi-v7a-preview-signed.apk Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
203+
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-armeabi-v7a-preview-unsigned-signed.apk Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
204204
sha=`sha256sum Komikku-armeabi-v7a-${{ needs.prepare-build.outputs.TAG_NAME }}.apk | awk '{ print $1 }'`
205205
echo "APK_ARMEABI_V7A_SHA=$sha" >> $GITHUB_OUTPUT
206206
207-
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86-preview-signed.apk Komikku-x86-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
207+
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86-preview-unsigned-signed.apk Komikku-x86-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
208208
sha=`sha256sum Komikku-x86-${{ needs.prepare-build.outputs.TAG_NAME }}.apk | awk '{ print $1 }'`
209209
echo "APK_X86_SHA=$sha" >> $GITHUB_OUTPUT
210210
211-
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86_64-preview-signed.apk Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
211+
mv app/build/outputs/apk/${{ needs.prepare-build.outputs.ARTIFACTS_PREFIX }}-x86_64-preview-unsigned-signed.apk Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_NAME }}.apk
212212
sha=`sha256sum Komikku-x86_64-${{ needs.prepare-build.outputs.TAG_NAME }}.apk | awk '{ print $1 }'`
213213
echo "APK_X86_64_SHA=$sha" >> $GITHUB_OUTPUT
214214

.github/workflows/build_pull_request.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,32 @@ jobs:
6262

6363
- name: Build app and run unit tests
6464
run: ./gradlew assembleStandardPreview testStandardPreviewUnitTest testReleaseUnitTest --stacktrace
65+
66+
- name: Sign APK
67+
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # v1
68+
with:
69+
releaseDirectory: app/build/outputs/apk/standard/preview
70+
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
71+
alias: ${{ secrets.ALIAS }}
72+
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
73+
keyPassword: ${{ secrets.KEY_PASSWORD }}
74+
75+
- name: Rename apk
76+
id: current_commit
77+
run: |
78+
set -x
79+
echo "The git ref is: ${{ github.ref }}"
80+
version_tag=p$(echo ${{ github.ref }} | cut -d '/' -f 3)
81+
commit_count=$(git rev-list --count HEAD)
82+
echo "VERSION_TAG=$version_tag"
83+
echo "VERSION_TAG=$version_tag" >> $GITHUB_OUTPUT
84+
echo "COMMIT_COUNT=$commit_count"
85+
echo "COMMIT_COUNT=$commit_count" >> $GITHUB_OUTPUT
86+
mv app/build/outputs/apk/standard/preview/app-standard-universal-preview-unsigned-signed.apk Komikku-$version_tag-r$commit_count.apk
87+
88+
- name: Upload APK
89+
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
90+
with:
91+
name: Komikku-${{ steps.current_commit.outputs.VERSION_TAG }}-r${{ steps.current_commit.outputs.COMMIT_COUNT }}.apk
92+
path: ./*.apk
93+
retention-days: 1

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ CHANGELOG.md
2424
/captures
2525
build.sh
2626
/app/src/main/assets/client_secrets.json
27+
*.jks

app/build.gradle.kts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import mihon.buildlogic.getBuildTime
22
import mihon.buildlogic.getCommitCount
33
import mihon.buildlogic.getGitSha
44
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
5+
import java.io.FileInputStream
6+
import java.util.Properties
57

68
plugins {
79
id("mihon.android.application")
@@ -53,6 +55,15 @@ android {
5355
}
5456
}
5557

58+
signingConfigs {
59+
create("preview") {
60+
storeFile = rootProject.file(readPropertyFromLocalProperties("keystore") ?: "keystore.jks")
61+
storePassword = readPropertyFromLocalProperties("storePassword")
62+
keyAlias = readPropertyFromLocalProperties("keyAlias")
63+
keyPassword = readPropertyFromLocalProperties("keyPassword")
64+
}
65+
}
66+
5667
buildTypes {
5768
named("debug") {
5869
versionNameSuffix = "-${getCommitCount()}"
@@ -78,8 +89,8 @@ android {
7889
matchingFallbacks.add("release")
7990
versionNameSuffix = "-${getCommitCount()}"
8091
applicationIdSuffix = ".beta"
81-
signingConfig = signingConfigs.getByName("debug")
8292
}
93+
// Profilers build, overwrite dev's signing configuration by 'debug' key then re-sign with GitHub's workflow
8394
create("benchmark") {
8495
initWith(getByName("release"))
8596

@@ -100,17 +111,21 @@ android {
100111
flavorDimensions.add("default")
101112

102113
productFlavors {
114+
// Include Google service & build unsigned, for GitHub workflow build
103115
create("standard") {
104116
buildConfigField("boolean", "INCLUDE_UPDATER", "true")
105117
dimension = "default"
106118
}
107119
create("fdroid") {
108120
dimension = "default"
109121
}
122+
// Signed, dev build with Android Studio if it's not a debug build
110123
create("dev") {
111124
// Include pseudolocales: https://developer.android.com/guide/topics/resources/pseudolocales
112125
resourceConfigurations.addAll(listOf("en", "en_XA", "ar_XB", "xxhdpi"))
113126
dimension = "default"
127+
// Default signing for dev flavor, would be overridden by buildTypes config
128+
signingConfig = signingConfigs.getByName("preview")
114129
}
115130
}
116131

@@ -344,3 +359,16 @@ buildscript {
344359
classpath(kotlinx.gradle)
345360
}
346361
}
362+
363+
// Config local store's signing key
364+
fun readPropertyFromLocalProperties(propertyName: String): String? {
365+
val localPropertiesFile = rootProject.file("local.properties")
366+
if (localPropertiesFile.exists()) {
367+
val properties = Properties()
368+
FileInputStream(localPropertiesFile).use { inputStream ->
369+
properties.load(inputStream)
370+
}
371+
return properties.getProperty(propertyName)
372+
}
373+
return null // Property not found
374+
}

0 commit comments

Comments
 (0)