Skip to content

Merge pull request #3 from BTreeMap/copilot/update-syntax-and-fix-ux-… #1

Merge pull request #3 from BTreeMap/copilot/update-syntax-and-fix-ux-…

Merge pull request #3 from BTreeMap/copilot/update-syntax-and-fix-ux-… #1

Workflow file for this run

name: Release - Sign and Publish
on:
push:
tags: ['v*.*.*']
workflow_dispatch: {}
permissions:
contents: read
jobs:
verify:
name: Verify Tests Pass
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
cache: gradle
- name: Run tests (release gate)
run: ./gradlew --no-daemon testDebugUnitTest lint
sign_and_release:
name: Sign and Release
needs: verify
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
cache: gradle
- name: Decode keystore
run: echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > $GITHUB_WORKSPACE/keystore.jks
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
- name: Build and sign
run: ./gradlew --no-daemon :app:assembleRelease
env:
ANDROID_KEYSTORE: ${{ github.workspace }}/keystore.jks
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASS }}
ANDROID_KEY_ALIAS: android
# Note: Using same password for keystore and key (common pattern for CI keystores)
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASS }}
- name: Get version from tag
id: get-version
run: |
if [[ "${{ github.ref_type }}" == "tag" ]]; then
echo "version=${{ github.ref_name }}" >> $GITHUB_OUTPUT
else
echo "version=$(date +'%Y-%m-%d')-${GITHUB_SHA:0:8}" >> $GITHUB_OUTPUT
fi
- name: Publish GitHub Release
uses: softprops/action-gh-release@v2
with:
prerelease: ${{ github.ref_type != 'tag' }}
tag_name: ${{ steps.get-version.outputs.version }}
files: app/build/outputs/apk/release/app-release.apk