mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-10 16:02:25 +01:00
Builds after a tag name themselves after it plus the commits since, and the version code is worked out from the numbers instead of set by hand.
57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
# The build names itself after the newest tag, which a shallow clone doesn't have.
|
|
fetch-depth: 0
|
|
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: "21"
|
|
|
|
- uses: gradle/actions/setup-gradle@v4
|
|
|
|
- name: Write signing key and properties
|
|
run: |
|
|
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > gearslip-release.jks
|
|
cat > keystore.properties <<EOF
|
|
storeFile=gearslip-release.jks
|
|
storePassword=${{ secrets.KEYSTORE_STORE_PASSWORD }}
|
|
keyAlias=${{ secrets.KEYSTORE_KEY_ALIAS }}
|
|
keyPassword=${{ secrets.KEYSTORE_KEY_PASSWORD }}
|
|
EOF
|
|
|
|
- name: Build release APK
|
|
run: ./gradlew :gearslip:assembleRelease
|
|
|
|
- name: Locate APK
|
|
id: apk
|
|
run: |
|
|
# The build moves its APKs to <root>/build/Gearslip-<variant>.apk (see renameApk).
|
|
apk=build/Gearslip-release.apk
|
|
test -f "$apk" || { echo "no APK at $apk"; ls -R build | head -50; exit 1; }
|
|
echo "path=$apk" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Create release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: ${{ steps.apk.outputs.path }}
|
|
# The hand-written notes go first; GitHub adds the full changelog link under them.
|
|
body_path: .github/release-notes.md
|
|
generate_release_notes: true
|
|
# Every release starts as a pre-release: only phones on the Alpha update channel get it.
|
|
# Once it's tested, untick pre-release on GitHub and everyone gets it.
|
|
prerelease: true
|