summaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
blob: 7aa93c8119cec5d2422f92a7e2bef7129e971f11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
name: Build and release APK

on:
  push:
    branches:
      - main
  workflow_dispatch:

permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      - name: Check out repository
        uses: actions/checkout@v4

      - name: Set up Java 17
        uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: '17'

      - name: Set up Gradle
        uses: gradle/actions/setup-gradle@v4

      - name: Decode Android signing keystore
        env:
          ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
        run: |
          if [ -z "$ANDROID_KEYSTORE_BASE64" ]; then
            echo "Missing ANDROID_KEYSTORE_BASE64 secret"
            exit 1
          fi
          echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$RUNNER_TEMP/release.keystore"

      - name: Build signed release APK
        env:
          ANDROID_KEYSTORE_PATH: ${{ runner.temp }}/release.keystore
          ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
          ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
          ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
          GITHUB_RUN_NUMBER: ${{ github.run_number }}
        run: ./gradlew :app:assembleRelease

      - name: Prepare release asset
        run: |
          cp app/build/outputs/apk/release/app-release.apk SidePhOnelauncher-${{ github.run_number }}.apk

      - name: Publish GitHub release
        uses: softprops/action-gh-release@v2
        with:
          tag_name: build-${{ github.run_number }}
          name: SidePhOnelauncher build ${{ github.run_number }}
          make_latest: true
          generate_release_notes: true
          files: SidePhOnelauncher-${{ github.run_number }}.apk
          body: |
            Automated APK build for commit `${{ github.sha }}` on `main`.

            Android versionName: `v6.7.1+${{ github.run_number }}`
            Android versionCode: a CI override derived from the workflow run number.