Skip to content

Commit 036a4ec

Browse files
committed
fix(ci): inject Android signing config after tauri android init
gen/android/ is gitignored and regenerated by `tauri android init`, so the build.gradle.kts signing config was never reaching CI. Now injected at build time along with version sync.
1 parent 14ba193 commit 036a4ec

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

.github/workflows/release-mobile.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,42 @@ jobs:
102102
- name: Initialize Android project
103103
run: pnpm tauri android init
104104

105+
- name: Sync Android version
106+
run: node scripts/sync-version.cjs
107+
108+
- name: Inject signing config into build.gradle.kts
109+
run: |
110+
GRADLE_FILE="src-tauri/gen/android/app/build.gradle.kts"
111+
# Insert signingConfigs block and wire it to the release buildType
112+
node -e "
113+
const fs = require('fs');
114+
let gradle = fs.readFileSync('$GRADLE_FILE', 'utf8');
115+
116+
// Add signingConfigs block after 'android {'
117+
const signingBlock = \`
118+
signingConfigs {
119+
create(\"release\") {
120+
storeFile = file(System.getenv(\"ANDROID_KEYSTORE\") ?: \"/dev/null\")
121+
storePassword = System.getenv(\"ANDROID_KEYSTORE_PASSWORD\") ?: \"\"
122+
keyAlias = System.getenv(\"ANDROID_KEY_ALIAS\") ?: \"\"
123+
keyPassword = System.getenv(\"ANDROID_KEY_PASSWORD\") ?: \"\"
124+
}
125+
}\`;
126+
gradle = gradle.replace(
127+
/defaultConfig\s*\{/,
128+
signingBlock + '\n defaultConfig {'
129+
);
130+
131+
// Wire signing config to release buildType
132+
gradle = gradle.replace(
133+
/getByName\(\"release\"\)\s*\{/,
134+
'getByName(\"release\") {\n signingConfig = signingConfigs.getByName(\"release\")'
135+
);
136+
137+
fs.writeFileSync('$GRADLE_FILE', gradle);
138+
console.log('Injected signing config into build.gradle.kts');
139+
"
140+
105141
- name: Build Android (release, signed)
106142
env:
107143
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/27.0.12077973

0 commit comments

Comments
 (0)