Add Gitea CI + release workflows (CI-SETUP.md)
CI / Gateway plugin tests (push) Failing after 2m6s
CI / Kotlin tests (android host + desktop) (push) Failing after 4m51s

- .gitea/workflows/ci.yml: gateway plugin tests + Kotlin host tests on
  push/PR (hermes-agent cloned at pinned SHA, vendored test mirror)
- .gitea/workflows/release.yml: manual dispatch; runs tests, builds signed
  Android APK (debug fallback) + Linux desktop app-image/deb via jpackage,
  creates Gitea release v<version> with artifacts (re-run safe)
- androidApp: versionName from -PappVersion, CI release signing from
  ANDROID_KEYSTORE_* env vars
- desktopApp: jpackage --app-version from -PappVersion
- scripts/make_release_keystore.sh: one-time keystore + Gitea secret setup
- vendor gateway-plugin/tests/test_android.py (byte-identical mirror) and
  ignore it in .pi-lens.json
This commit is contained in:
ARIA committed 2026-08-22 03:32:07 +02:00
1 parent 8c09aecf4a
commit 7309158e12
8 files changed
+3141 -2

No files matched your search

+24 -1
View File
@@ -14,7 +14,9 @@ android {
minSdk = 29
targetSdk = 34
versionCode = 1
versionName = "0.1.0"
// CI passes -PappVersion=<version> (release workflow); local builds
// keep the default.
versionName = (project.findProperty("appVersion") as? String) ?: "0.1.0"
}
buildTypes {
@@ -23,6 +25,27 @@ android {
}
}
// CI release signing: .gitea/workflows/release.yml restores a keystore
// from Gitea secrets and exports ANDROID_KEYSTORE_* env vars (see
// scripts/make_release_keystore.sh). Without them the release build stays
// unsigned and the workflow falls back to a debug APK.
val ciKeystore = System.getenv("ANDROID_KEYSTORE_FILE")
if (ciKeystore != null) {
signingConfigs {
create("release") {
storeFile = file(ciKeystore)
storePassword = System.getenv("ANDROID_KEYSTORE_PASSWORD")
keyAlias = System.getenv("ANDROID_KEY_ALIAS")
keyPassword = System.getenv("ANDROID_KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17