Skip to content
Open
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
16 changes: 5 additions & 11 deletions .github/workflows/build_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ concurrency:
env:
CI_CHUNK_SIZE: 80
IS_PR_CHECK: false
KEI_CI: true

jobs:
prepare:
Expand Down Expand Up @@ -72,16 +73,13 @@ jobs:
with:
cache-read-only: ${{ matrix.chunk.number > 1 }}

- name: Prepare signing key
run: |
echo ${{ secrets.SIGNING_KEY }} | base64 -d > signingkey.jks

- name: Build extensions (${{ matrix.chunk.number }})
env:
MODULES: ${{ join(matrix.chunk.modules, ' ') }}
ALIAS: ${{ secrets.ALIAS }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
storeFileBase64: ${{ secrets.SIGNING_KEY }}
storePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyAlias: ${{ secrets.ALIAS }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
run: |
./gradlew $MODULES

Expand All @@ -96,10 +94,6 @@ jobs:
**/build/keiyoushi-source-info.json
retention-days: 1

- name: Clean up CI files
if: always()
run: rm signingkey.jks

publish:
name: Publish extension repo
needs: [prepare, build]
Expand Down
26 changes: 15 additions & 11 deletions gradle/build-logic/src/main/kotlin/ExtensionPlugin.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.findByType
import org.gradle.kotlin.dsl.register
import org.gradle.kotlin.dsl.withType
import kotlin.io.encoding.Base64

@Suppress("UNUSED")
class ExtensionPlugin : Plugin<Project> {
Expand Down Expand Up @@ -78,22 +79,25 @@ class ExtensionPlugin : Plugin<Project> {
checkReleaseBuilds = false
}

signingConfigs {
create("release") {
storeFile = rootProject.file("signingkey.jks")
storePassword = providers.environmentVariable("KEY_STORE_PASSWORD").orNull
keyAlias = providers.environmentVariable("ALIAS").orNull
keyPassword = providers.environmentVariable("KEY_PASSWORD").orNull
if (System.getenv("KEI_CI").toBoolean()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use providers.environmentVariable ?

val tempStoreFile = file(System.getenv("RUNNER_TEMP")).resolve("signingkey.jks")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this makes it so local development can't make release build with custom key without either changing this code or setting this env variable


val storeFileBytes = System.getenv("storeFileBase64").let(Base64::decode)
tempStoreFile.outputStream().use { it.write(storeFileBytes) }

signingConfigs {
named("debug") {
storeFile = tempStoreFile
storePassword = System.getenv("storePassword")
keyAlias = System.getenv("keyAlias")
keyPassword = System.getenv("keyPassword")
}
}
}

buildTypes {
named("release") {
signingConfig = if (rootProject.file("signingkey.jks").exists()) {
signingConfigs.getByName("release")
} else {
signingConfigs.getByName("debug")
}
signingConfig = getByName("debug").signingConfig
isMinifyEnabled = true
proguardFiles(rootProject.file("common/proguard-rules.pro"))
@Suppress("UnstableApiUsage")
Expand Down