t push origin mainMerge branch 'orz12-main' #1
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: CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- '*' | |
paths-ignore: | |
- '**.md' | |
- '**.txt' | |
- '.github/**' | |
- '.idea/**' | |
- '!.github/workflows/**' | |
jobs: | |
android: | |
name: Build CI (Android) | |
runs-on: ubuntu-latest | |
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 | |
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: 获取版本号 | |
id: version | |
run: echo "version=${GITHUB_SHA::7}" >>$GITHUB_OUTPUT | |
- name: 重命名应用 | |
run: | | |
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-CI | |
path: | | |
build/app/outputs/flutter-apk/Pili-*.apk | |
iOS: | |
name: Build CI (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_SHA::7}" >>$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-CI | |
path: | | |
build/Pili-*.ipa | |
upload: | |
runs-on: ubuntu-latest | |
needs: | |
- android | |
- iOS | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: Pilipala-CI | |
path: ./Pilipala-CI | |
- name: Upload Pre-release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: v${{ github.run_number }} | |
token: ${{ secrets.GIT_TOKEN }} | |
commit: main | |
tag: v${{ github.run_number }} | |
prerelease: true | |
allowUpdates: true | |
artifacts: Pilipala-CI/* |