Republish setup: fastlane + Forgejo CI, signing/version fixes, Play-policy link
Some checks failed
ci / analyze (push) Failing after 2m3s
ci / test (push) Failing after 1m26s
release / android (push) Failing after 5m51s

- support_page: repoint comunes.org link to project page (Play re-approval)
- build.gradle: conditional release signing (debug fallback), versionCode/Name
  from pubspec, drop duplicate google-services plugin
- pubspec: version 1.10.0+10 (versionCode must exceed last uploaded)
- track AndroidManifest.xml (no secrets in it)
- fastlane: Appfile/Fastfile (deploy_play/deploy_metadata/promote_production) +
  Gemfile + es/en/gl store metadata
- .forgejo: ci.yml (analyze+test) + release.yml (tag v* -> signed AAB -> Play internal)
- README + RELEASE.md
This commit is contained in:
vjrj 2026-07-16 20:49:28 +02:00
parent cea395007d
commit 4461481668
24 changed files with 446 additions and 15 deletions

View file

@ -12,9 +12,14 @@ if (localPropertiesFile.exists()) {
}
}
// Release signing is opt-in: only load key.properties if it exists. Without it
// (CI analyze/test jobs, contributors) builds fall back to debug signing.
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
def hasReleaseKeystore = keystorePropertiesFile.exists()
if (hasReleaseKeystore) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
compileSdkVersion 36
@ -29,23 +34,28 @@ android {
applicationId "org.comunes.fires"
minSdkVersion flutter.minSdkVersion
targetSdkVersion 36
versionCode 9
versionName "1.9"
// versionCode/versionName come from pubspec.yaml (version: X.Y.Z+CODE)
// so a `v*` git tag maps the release version, matching the tane flow.
versionCode flutter.versionCode
versionName flutter.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
if (hasReleaseKeystore) {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
}
buildTypes {
release {
signingConfig signingConfigs.release
// Sign with the release key when available, else debug (contributors/CI).
signingConfig hasReleaseKeystore ? signingConfigs.release : signingConfigs.debug
minifyEnabled true
shrinkResources true
@ -83,5 +93,3 @@ dependencies {
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.gms.google-services'