v1.5.0-hotfix4: Create keystore.properties in workflow

This commit is contained in:
zarzet
2026-01-02 04:17:24 +07:00
parent 7aa3e77df1
commit 562fd4d7bb
5 changed files with 14 additions and 25 deletions
+6 -7
View File
@@ -86,19 +86,18 @@ jobs:
- name: Generate app icons
run: dart run flutter_launcher_icons
- name: Decode Keystore
- name: Setup Keystore
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > android/app/ci-keystore.jks
echo "storeFile=ci-keystore.jks" > android/keystore.properties
echo "storePassword=${{ secrets.KEYSTORE_PASSWORD }}" >> android/keystore.properties
echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/keystore.properties
echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/keystore.properties
ls -la android/app/ci-keystore.jks
env:
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
cat android/keystore.properties | head -1
- name: Build APK (Release)
run: flutter build apk --release --split-per-abi
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Rename APKs
run: |
Binary file not shown.
+5 -15
View File
@@ -5,16 +5,13 @@ plugins {
id("dev.flutter.flutter-gradle-plugin")
}
// Load keystore properties from file if exists (local build)
// Load keystore properties from file if exists
val keystorePropertiesFile = rootProject.file("keystore.properties")
val keystoreProperties = java.util.Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(java.io.FileInputStream(keystorePropertiesFile))
}
// CI keystore file (decoded by workflow)
val ciKeystoreFile = file("ci-keystore.jks")
android {
namespace = "com.zarz.spotiflac"
compileSdk = flutter.compileSdkVersion
@@ -33,19 +30,12 @@ android {
}
signingConfigs {
create("release") {
if (keystorePropertiesFile.exists()) {
// Local build: use keystore.properties
storeFile = file(keystoreProperties["storeFile"] as String)
if (keystorePropertiesFile.exists()) {
create("release") {
storeFile = file("app/${keystoreProperties["storeFile"]}")
storePassword = keystoreProperties["storePassword"] as String
keyAlias = keystoreProperties["keyAlias"] as String
keyPassword = keystoreProperties["keyPassword"] as String
} else if (ciKeystoreFile.exists()) {
// CI/CD build: use decoded keystore from workflow
storeFile = ciKeystoreFile
storePassword = System.getenv("KEYSTORE_PASSWORD")
keyAlias = System.getenv("KEY_ALIAS")
keyPassword = System.getenv("KEY_PASSWORD")
}
}
}
@@ -68,7 +58,7 @@ android {
buildTypes {
release {
// Use release signing config if available, otherwise fall back to debug
signingConfig = if (signingConfigs.findByName("release")?.storeFile != null) {
signingConfig = if (keystorePropertiesFile.exists()) {
signingConfigs.getByName("release")
} else {
signingConfigs.getByName("debug")
+2 -2
View File
@@ -1,8 +1,8 @@
/// App version and info constants
/// Update version here only - all other files will reference this
class AppInfo {
static const String version = '1.5.0-hotfix3';
static const String buildNumber = '17';
static const String version = '1.5.0-hotfix4';
static const String buildNumber = '18';
static const String fullVersion = '$version+$buildNumber';
static const String appName = 'SpotiFLAC';
+1 -1
View File
@@ -1,7 +1,7 @@
name: spotiflac_android
description: Download Spotify tracks in FLAC from Tidal, Qobuz & Amazon Music
publish_to: 'none'
version: 1.5.0+17
version: 1.5.0+18
environment:
sdk: ^3.10.0