Skip to content

Release CI

Release CI #22

Workflow file for this run

name: Release CI
on:
workflow_dispatch:
inputs:
prerelease:
description: 'Mark as Pre-release'
required: false
type: boolean
publish:
description: 'Publish release'
required: false
type: boolean
default: true
jobs:
job_armv8:
runs-on: macos-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew assembleArmv8Release
- name: Sign APK
id: sign_app
uses: kevin-david/zipalign-sign-android-release@main
with:
releaseDirectory: app/build/outputs/apk/armv8/release/
signingKeyBase64: ${{ secrets.JAVA_KEYSTORE_DATA }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Delete unsigned file
run: |
cd app/build/outputs/apk/armv8/release/
shopt -s extglob
rm !(*-signed*)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: snapenhance-armv8-release
path: app/build/outputs/apk/armv8/release/*.apk
job_armv7:
runs-on: macos-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew assembleArmv7Release
- name: Sign APK
id: sign_app
uses: kevin-david/zipalign-sign-android-release@main
with:
releaseDirectory: app/build/outputs/apk/armv7/release/
signingKeyBase64: ${{ secrets.JAVA_KEYSTORE_DATA }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Delete unsigned file
run: |
cd app/build/outputs/apk/armv7/release/
shopt -s extglob
rm !(*-signed*)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: snapenhance-armv7-release
path: app/build/outputs/apk/armv7/release/*.apk
job_universal:
runs-on: macos-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew assembleAllRelease
- name: Sign APK
id: sign_app
uses: kevin-david/zipalign-sign-android-release@main
with:
releaseDirectory: app/build/outputs/apk/all/release/
signingKeyBase64: ${{ secrets.JAVA_KEYSTORE_DATA }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Delete unsigned file
run: |
cd app/build/outputs/apk/all/release/
shopt -s extglob
rm !(*-signed*)
- name: Upload universal
uses: actions/upload-artifact@v4
with:
name: snapenhance-universal-release
path: app/build/outputs/apk/all/release/*.apk
job_manager:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew manager:assembleRelease
- name: Sign APK
id: sign_app
uses: kevin-david/zipalign-sign-android-release@main
with:
releaseDirectory: manager/build/outputs/apk/release/
signingKeyBase64: ${{ secrets.JAVA_KEYSTORE_DATA }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Delete unsigned file
run: |
cd manager/build/outputs/apk/release/
shopt -s extglob
rm !(*-signed*)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: manager
path: manager/build/outputs/apk/release/*.apk
job_release:
runs-on: ubuntu-latest
if: ${{ inputs.publish == true }}
needs: [job_armv8, job_armv7, job_universal, job_manager]
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Generate version
run: ./gradlew getVersion
- name: Set Environment Variables
id: version-env
run: |
echo "version=$(cat app/build/version.txt)" >> $GITHUB_ENV
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: bins/
merge-multiple: true
- name: Publish APK
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: ${{ inputs.prerelease }}
files: bins/*.apk
automatic_release_tag: v${{ env.version }}