Skip to content

更丰富的Workflow #108

更丰富的Workflow

更丰富的Workflow #108

name: android master CI
on:
push:
branches: '*'
tags: '*'
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup version code
run: |
sed -i 's/\(versionCode\s*\)[0-9]\+/\1${{ github.run_number }}/' app/build.gradle
sed -i 's/\(versionName\s*"\)[^"]*"/\1${{ github.ref_name }}"/' app/build.gradle
- name: Prepare signing key
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
run: |
echo '${{ secrets.SIGNING_KEY }}' | base64 -d > signingkey.jks
- name: set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build debug binary with Gradle
uses: gradle/gradle-command-action@v2
if: github.ref != 'refs/heads/main' || !startsWith(github.ref, 'refs/tags/')
with:
arguments: assembleDebug
- name: Build release binary with Gradle
uses: gradle/gradle-command-action@v2
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
env:
ALIAS: ${{ secrets.ALIAS }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
with:
arguments: assembleRelease
- name: Clean up signing key
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
run: rm signingkey.jks
- name: Upload debug binary to artifacts
uses: actions/upload-artifact@v2
if: github.ref != 'refs/heads/main' || !startsWith(github.ref, 'refs/tags/')
with:
name: app-debug
path: ${{github.workspace}}/app/build/outputs/apk/debug/*.apk
- name: Upload release binary to artifacts
uses: actions/upload-artifact@v2
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
with:
name: app-release
path: ${{github.workspace}}/app/build/outputs/apk/release/*.apk
- name: Setup release info
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
run: |
cd ${{github.workspace}}/app/build/outputs/apk/release
echo "OPT_APK_SHA=$(sha256sum *.apk | awk '{ print $1 }')" >> $GITHUB_ENV
echo "OPT_APK_NAME=$(ls *.apk)" >> $GITHUB_ENV
- name: Create & upload new release draft
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
uses: softprops/action-gh-release@v1
with:
name: Doraemon
tag_name: ${{ github.ref_name }}
draft: true
files: ${{github.workspace}}/app/build/outputs/apk/release/*.apk
body: |
### 文件校验
| 文件 | SHA-256 |
| --- | --- |
| ${{ env.OPT_APK_NAME }} | ${{ env.OPT_APK_SHA }} |