mirror of
https://github.com/lone-cloud/prism-android
synced 2026-06-03 11:03:10 -07:00
81 lines
2.5 KiB
YAML
81 lines
2.5 KiB
YAML
name: Release
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'Release tag (example: v0.1.0)'
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
ref: ${{ inputs.tag }}
|
|
fetch-depth: 0
|
|
|
|
- name: Set up JDK 21
|
|
uses: actions/setup-java@v5
|
|
with:
|
|
java-version: '21'
|
|
distribution: 'temurin'
|
|
|
|
- name: Grant execute permission for gradlew
|
|
run: chmod +x gradlew
|
|
|
|
- name: Verify tag matches VERSION
|
|
run: |
|
|
expected="v$(cat VERSION)"
|
|
if [ "$expected" != "${{ inputs.tag }}" ]; then
|
|
echo "Tag ${{ inputs.tag }} does not match VERSION ($expected)"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Decode signing keystore
|
|
run: |
|
|
echo "${{ secrets.ANDROID_SIGNING_KEYSTORE_B64 }}" | tr -d '[:space:]' | base64 -d > "$RUNNER_TEMP/release.keystore"
|
|
|
|
- name: Build signed release artifacts
|
|
env:
|
|
ANDROID_SIGNING_STORE_FILE: ${{ runner.temp }}/release.keystore
|
|
ANDROID_SIGNING_STORE_PASSWORD: ${{ secrets.ANDROID_SIGNING_STORE_PASSWORD }}
|
|
ANDROID_SIGNING_KEY_ALIAS: ${{ secrets.ANDROID_SIGNING_KEY_ALIAS }}
|
|
ANDROID_SIGNING_KEY_PASSWORD: ${{ secrets.ANDROID_SIGNING_KEY_PASSWORD }}
|
|
run: ./gradlew assembleRelease --stacktrace
|
|
|
|
- name: Rename artifacts
|
|
run: |
|
|
mv app/build/outputs/apk/release/app-release.apk prism.apk
|
|
|
|
- name: Upload release artifacts
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
name: prism-release-artifacts
|
|
path: |
|
|
prism.apk
|
|
|
|
- name: Resolve changelog path
|
|
id: changelog
|
|
run: |
|
|
VERSION=$(cat VERSION)
|
|
MAJOR=$(echo $VERSION | cut -d. -f1)
|
|
MINOR=$(echo $VERSION | cut -d. -f2)
|
|
PATCH=$(echo $VERSION | cut -d. -f3)
|
|
VCODE=$(( MAJOR * 10000 + MINOR * 100 + PATCH ))
|
|
echo "path=fastlane/metadata/android/en-US/changelogs/${VCODE}.txt" >> $GITHUB_OUTPUT
|
|
|
|
- name: Upload to release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
tag_name: ${{ inputs.tag }}
|
|
name: Prism ${{ inputs.tag }}
|
|
body_path: ${{ steps.changelog.outputs.path }}
|
|
files: |
|
|
prism.apk
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|