Pilipala Release #3
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: Pilipala Release | |
# action事件触发 | |
on: | |
push: | |
# push tag时触发 | |
tags: | |
- "v*.*.*" | |
# 可以有多个jobs | |
jobs: | |
android: | |
# 运行环境 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.16.5 | |
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 | |
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: flutter build apk | |
run: flutter build apk --release | |
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: 重命名应用 | |
run: | | |
# DATE=${{ steps.date.outputs.date }} | |
for file in build/app/outputs/flutter-apk/app-*.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: 上传 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Pilipala-Release | |
path: | | |
build/app/outputs/flutter-apk/Pili-*.apk | |
iOS: | |
runs-on: macos-latest | |
steps: | |
- name: 代码迁出 | |
uses: actions/checkout@v4 | |
- name: 安装Flutter | |
if: steps.cache-flutter.outputs.cache-hit != 'true' | |
uses: subosito/[email protected] | |
with: | |
cache: true | |
flutter-version: 3.16.5 | |
- name: flutter build ipa | |
run: | | |
flutter build ios --release --no-codesign | |
ln -sf ./build/ios/iphoneos Payload | |
zip -r9 app.ipa Payload/runner.app | |
- name: 获取版本号 | |
id: version | |
run: echo "version=${GITHUB_REF#refs/tags/v}" >>$GITHUB_OUTPUT | |
- name: 重命名应用 | |
run: | | |
DATE=${{ steps.date.outputs.date }} | |
for file in app.ipa; do | |
new_file_name="build/Pili-${{ steps.version.outputs.version }}.ipa" | |
mv "$file" "$new_file_name" | |
done | |
- name: 上传 | |
uses: actions/upload-artifact@v3 | |
with: | |
if-no-files-found: error | |
name: Pilipala-Release | |
path: | | |
build/Pili-*.ipa | |
upload: | |
runs-on: ubuntu-latest | |
needs: | |
- android | |
- iOS | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: Pilipala-Release | |
path: ./Pilipala-Release | |
- name: Install dependencies | |
run: sudo apt-get install tree -y | |
- name: Get version | |
id: version | |
run: echo "version=${GITHUB_REF#refs/tags/v}" >>$GITHUB_OUTPUT | |
- name: Upload Release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: v${{ steps.version.outputs.version }} | |
token: ${{ secrets.GIT_TOKEN }} | |
omitBodyDuringUpdate: true | |
omitNameDuringUpdate: true | |
omitPrereleaseDuringUpdate: true | |
allowUpdates: true | |
artifacts: Pilipala-Release/* |