commit 023f35714e2bfdfd39340e3caee2ec3938dda7c4
parent 44eccb66d1c68becd89100c6e146c0f7e785a647
Author: auth <64337177+authorisation@users.noreply.github.com>
Date: Wed, 27 Mar 2024 13:13:08 +0100
fix(ci): release action
Diffstat:
3 files changed, 180 insertions(+), 26 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,6 +1,6 @@
name: "Bug report"
description: "Report an issue to help the project improve."
-title: "TITLE"
+title: "..."
labels:
- "bug"
body:
diff --git a/.github/ISSUE_TEMPLATE/feature_suggestion.yml b/.github/ISSUE_TEMPLATE/feature_suggestion.yml
@@ -1,6 +1,6 @@
name: "Feature suggestion"
description: Suggest a new feature to help the project improve.
-title: "feat: TITLE"
+title: "..."
labels: [
"enhancement"
]
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
@@ -1,9 +1,19 @@
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:
- build:
- runs-on: ubuntu-latest
+ job_armv8:
+ runs-on: macos-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
@@ -20,14 +30,54 @@ jobs:
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- - name: Clean Gradle Cache
- run: ./gradlew clean
+ - 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 Release APK
- run: ./gradlew assembleRelease
+ - name: Build
+ run: ./gradlew assembleArmv7Release
- - name: Sign armv7 APK
- id: sign_armv7_app
+ - name: Sign APK
+ id: sign_app
uses: kevin-david/zipalign-sign-android-release@main
with:
releaseDirectory: app/build/outputs/apk/armv7/release/
@@ -36,41 +86,145 @@ jobs:
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- - name: Upload armv7 artifact
+ - 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: app-armv7-release
- path: ${{ steps.sign_armv7_app.outputs.signedReleaseFile }}
+ 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: Sign armv8 APK
- id: sign_armv8_app
+ - 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/armv8/release/
+ 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: Upload armv8 artifact
+ - 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: app-armv8-release
- path: ${{ steps.sign_armv8_app.outputs.signedReleaseFile }}
+ name: snapenhance-universal-release
+ path: app/build/outputs/apk/all/release/*.apk
- - name: Generate Version
+ 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 Version to Environment
+ - name: Set Environment Variables
id: version-env
- run: echo "version=$(cat app/build/version.txt)" >> $GITHUB_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: false
- files: |
- ${{ steps.sign_armv7_app.outputs.signedReleaseFile }}
- ${{ steps.sign_armv8_app.outputs.signedReleaseFile }}
+ prerelease: ${{ inputs.prerelease }}
+ files: bins/*.apk
automatic_release_tag: v${{ env.version }}
+
+