Skip to content

Commit 8479b82

Browse files
committed
update publish workflow
1 parent d2987a3 commit 8479b82

2 files changed

Lines changed: 89 additions & 64 deletions

File tree

.github/workflows/android.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

.github/workflows/publish.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: New Release
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
workflow_dispatch:
7+
inputs:
8+
version_number:
9+
description: 'Version Number (e.g., 1.0.0)'
10+
required: true
11+
type: string
12+
default: '1.x.x'
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
if: |
18+
startsWith(github.event.head_commit.message, 'release') ||
19+
github.event_name == 'workflow_dispatch'
20+
21+
steps:
22+
- uses: actions/checkout@v4
23+
with:
24+
fetch-depth: 0
25+
26+
- name: Set up JDK 17
27+
uses: actions/setup-java@v4
28+
with:
29+
java-version: '17'
30+
distribution: 'temurin'
31+
cache: gradle
32+
33+
- name: Grant execute permission for gradlew
34+
run: chmod +x gradlew
35+
36+
- name: Setup signing keystore
37+
run: |
38+
echo "${{ secrets.KEYSTORE_FILE }}" | base64 -d > app/release-key.keystore
39+
env:
40+
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}
41+
42+
- name: Extract version from commit message
43+
id: version
44+
run: |
45+
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
46+
# Manual trigger - use input version
47+
VERSION_NUMBER="${{ github.event.inputs.version_number }}"
48+
echo "version_number=$VERSION_NUMBER" >> $GITHUB_OUTPUT
49+
echo "tag_name=v$VERSION_NUMBER" >> $GITHUB_OUTPUT
50+
echo "apk_name=swingmusic.v$VERSION_NUMBER.apk" >> $GITHUB_OUTPUT
51+
else
52+
# Push trigger - extract from commit message
53+
COMMIT_MSG="${{ github.event.head_commit.message }}"
54+
if [[ $COMMIT_MSG =~ release[[:space:]]+v?([0-9]+\.[0-9]+\.[0-9]+) ]]; then
55+
VERSION_NUMBER="${BASH_REMATCH[1]}"
56+
else
57+
echo "Error: No valid version number found in commit message: $COMMIT_MSG"
58+
echo "Expected format: 'release v1.0.0' or 'release 1.0.0'"
59+
exit 1
60+
fi
61+
echo "version_number=$VERSION_NUMBER" >> $GITHUB_OUTPUT
62+
echo "tag_name=v$VERSION_NUMBER" >> $GITHUB_OUTPUT
63+
echo "apk_name=swingmusic.v$VERSION_NUMBER.apk" >> $GITHUB_OUTPUT
64+
fi
65+
66+
- name: Build signed APK
67+
run: ./gradlew assembleRelease -PversionCode=${{ github.run_number }} -PversionName="${{ steps.version.outputs.version_number }}"
68+
env:
69+
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}
70+
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
71+
KEY_ALIAS: ${{ secrets.KEYSTORE_ALIAS }}
72+
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
73+
74+
- name: Rename APK
75+
run: |
76+
mv app/build/outputs/apk/release/app-release.apk "app/build/outputs/apk/release/${{ steps.version.outputs.apk_name }}"
77+
78+
- name: Create Release
79+
id: create_release
80+
uses: softprops/action-gh-release@v1
81+
with:
82+
tag_name: ${{ steps.version.outputs.tag_name }}
83+
name: Release ${{ steps.version.outputs.tag_name }}
84+
draft: false
85+
prerelease: true
86+
files: app/build/outputs/apk/release/${{ steps.version.outputs.apk_name }}
87+
generate_release_notes: true
88+
env:
89+
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}

0 commit comments

Comments
 (0)