mirror of
https://github.com/NoCrypt/migu.git
synced 2026-03-11 17:45:32 +00:00
119 lines
3.6 KiB
YAML
119 lines
3.6 KiB
YAML
name: Android Build
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ["Electron Build and Release"]
|
|
types:
|
|
- completed
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: ./capacitor
|
|
steps:
|
|
- name: Check out Git repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-tags: true
|
|
|
|
- name: Setup PNPM
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 9.4.0
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
cache: 'pnpm'
|
|
|
|
- name: Setup Java
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'temurin'
|
|
java-version: '21'
|
|
check-latest: true
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Install node-pre-gyp
|
|
run: pnpm install -g node-pre-gyp
|
|
|
|
- name: Remove Cached Build
|
|
run: rm -rf ./build && mkdir ./build
|
|
|
|
- name: Forcefully Remove Developer Mode
|
|
run: |
|
|
sed -i "s@if (mode === 'development')@// if (mode === 'development')@g" ./capacitor.config.js
|
|
echo "Forcefully removed developer mode"
|
|
|
|
- name: Build Native + Web
|
|
run: pnpm run build:app
|
|
|
|
- name: Sync
|
|
run: pnpm exec cap sync android
|
|
|
|
- uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.gradle/caches
|
|
~/.gradle/wrapper
|
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gradle-
|
|
|
|
- name: Build App
|
|
run: cd android && chmod +x ./gradlew && ./gradlew assembleRelease
|
|
|
|
- name: Stop Gradle daemon
|
|
run: cd android && ./gradlew --stop
|
|
|
|
# - name: Setup build tool version variable
|
|
# shell: bash
|
|
# run: |
|
|
# BUILD_TOOL_VERSION=$(ls /usr/local/lib/android/sdk/build-tools/ | tail -n 1)
|
|
# echo "BUILD_TOOL_VERSION=$BUILD_TOOL_VERSION" >> $GITHUB_ENV
|
|
# echo Last build tool version is: $BUILD_TOOL_VERSION
|
|
|
|
- name: Get Tag
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
GIT_CURR_TAG=$(gh release list --limit 1 --json tagName --jq '.[0].tagName')
|
|
echo "GIT_CURR_TAG=$GIT_CURR_TAG" >> $GITHUB_ENV
|
|
echo Last Tag is: $GIT_CURR_TAG
|
|
|
|
- uses: Wandalen/wretry.action@master
|
|
name: Sign app APK
|
|
id: sign_app
|
|
with:
|
|
attempt_limit: 3
|
|
action: NoCrypt/sign-android@v1.0.3
|
|
with: |
|
|
releaseDir: capacitor/android/app/build/outputs/apk/release
|
|
signingKey: ${{ secrets.SIGNING_KEY }}
|
|
keyAlias: ${{ secrets.ALIAS }}
|
|
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
appName: Migu
|
|
appVersion: ${{ env.GIT_CURR_TAG }}
|
|
appPrefix: android
|
|
|
|
- uses: jungwinter/split@v2
|
|
id: signed_files
|
|
with:
|
|
msg: ${{ fromJSON( steps.sign_app.outputs.outputs ).signedFiles }}
|
|
separator: ':'
|
|
|
|
- name: Upload APK to release
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
git fetch --tags
|
|
gh release upload --clobber ${{ env.GIT_CURR_TAG }} ../${{ steps.signed_files.outputs._0 }}
|
|
gh release upload --clobber ${{ env.GIT_CURR_TAG }} ../${{ steps.signed_files.outputs._1 }}
|
|
gh release upload --clobber ${{ env.GIT_CURR_TAG }} ../${{ steps.signed_files.outputs._2 }}
|
|
gh release upload --clobber ${{ env.GIT_CURR_TAG }} ../${{ steps.signed_files.outputs._3 }}
|