v1.0.3 更新 #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build_apk | |
# action事件触发 | |
on: | |
push: | |
# push tag时触发 | |
tags: | |
- 'v*.*.*' | |
# 可以有多个jobs | |
jobs: | |
build_apk: | |
# 运行环境 ubuntu-latest window-latest mac-latest | |
runs-on: ubuntu-latest | |
# 每个jobs中可以有多个steps | |
steps: | |
- name: 代码迁出 | |
uses: actions/checkout@v3 | |
- name: 构建Java环境 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: "zulu" | |
java-version: "17" | |
token: ${{secrets.GIT_TOKEN}} | |
- name: 检查缓存 | |
uses: actions/cache@v2 | |
id: cache-flutter | |
with: | |
path: /root/flutter-sdk # Flutter SDK 的路径 | |
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }} | |
- name: 安装Flutter | |
if: steps.cache-flutter.outputs.cache-hit != 'true' | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: 3.10.6 | |
channel: any | |
- name: 下载项目依赖 | |
run: flutter pub get | |
- name: 解码生成 jks | |
run: echo $KEYSTORE_BASE64 | base64 -di > android/app/vvex.jks | |
env: | |
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }} | |
- name: flutter build apk | |
# 对应 android/app/build.gradle signingConfigs中的配置项 | |
run: flutter build apk --release --split-per-abi | |
env: | |
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | |
KEY_ALIAS: ${{ secrets.KEY_ALIAS }} | |
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD}} | |
- name: 获取版本号 | |
id: version | |
run: echo "version=${GITHUB_REF#refs/tags/v}" >>$GITHUB_OUTPUT | |
# - name: 获取当前日期 | |
# id: date | |
# run: echo "date=$(date +'%m%d')" >>$GITHUB_OUTPUT | |
- name: 重命名应用 Pili-arm64-v8a-*.*.*.0101.apk | |
run: | | |
# DATE=${{ steps.date.outputs.date }} | |
for file in build/app/outputs/flutter-apk/app-*-release.apk; do | |
if [[ $file =~ app-(.*)-release.apk ]]; then | |
new_file_name="build/app/outputs/flutter-apk/Pili-${BASH_REMATCH[1]}-${{ steps.version.outputs.version }}.apk" | |
mv "$file" "$new_file_name" | |
fi | |
done | |
- name: 构建和发布release | |
uses: ncipollo/release-action@v1 | |
with: | |
# release title | |
name: v${{ steps.version.outputs.version }} | |
artifacts: "build/app/outputs/flutter-apk/Pili-*.apk" | |
bodyFile: "change_log/${{steps.version.outputs.version}}.md" | |
token: ${{ secrets.GIT_TOKEN }} | |
allowUpdates: true |