Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8520979

Browse files
ohucclaude
andcommitted
Add GitHub Actions release workflow, wire signing config from env vars
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
1 parent 8e8444d commit 8520979

3 files changed

Lines changed: 63 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build-and-release:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
19+
- name: Set up JDK 21
20+
uses: actions/setup-java@v4
21+
with:
22+
java-version: '21'
23+
distribution: 'temurin'
24+
cache: gradle
25+
26+
- name: Make gradlew executable
27+
run: chmod +x ./gradlew
28+
29+
- name: Decode keystore
30+
env:
31+
KEYSTORE_BASE64: ${{ secrets.RELEASE_KEYSTORE_BASE64 }}
32+
run: echo "$KEYSTORE_BASE64" | base64 --decode > $GITHUB_WORKSPACE/release.keystore
33+
34+
- name: Build release APK
35+
env:
36+
SIGNING_STORE_FILE: ${{ github.workspace }}/release.keystore
37+
SIGNING_STORE_PASSWORD: ${{ secrets.RELEASE_STORE_PASSWORD }}
38+
SIGNING_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }}
39+
SIGNING_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }}
40+
run: ./gradlew assembleRelease
41+
42+
- name: Rename APK
43+
run: |
44+
TAG=${GITHUB_REF#refs/tags/}
45+
mv app/build/outputs/apk/release/app-release.apk \
46+
app/build/outputs/apk/release/caffeine-health-${TAG}.apk
47+
48+
- name: Create GitHub Release
49+
uses: softprops/action-gh-release@v2
50+
with:
51+
name: "Caffeine Health ${{ github.ref_name }}"
52+
generate_release_notes: true
53+
files: app/build/outputs/apk/release/caffeine-health-*.apk

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ local.properties
66
# IDE
77
.idea/
88
.vscode/
9-
.github/
109
.claude/
1110

1211
CLAUDE.md

app/build.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,18 @@ android {
1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1919
}
2020

21+
signingConfigs {
22+
create("release") {
23+
storeFile = System.getenv("SIGNING_STORE_FILE")?.let { file(it) }
24+
storePassword = System.getenv("SIGNING_STORE_PASSWORD")
25+
keyAlias = System.getenv("SIGNING_KEY_ALIAS")
26+
keyPassword = System.getenv("SIGNING_KEY_PASSWORD")
27+
}
28+
}
29+
2130
buildTypes {
2231
release {
32+
signingConfig = signingConfigs["release"].takeIf { it.storeFile != null }
2333
isMinifyEnabled = true
2434
proguardFiles(
2535
getDefaultProguardFile("proguard-android-optimize.txt"),

0 commit comments

Comments
 (0)