v1.3.0 #114
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: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- README.md | |
- README_CN.md | |
- LICENSE | |
pull_request: | |
paths-ignore: | |
- README.md | |
- README_CN.md | |
- LICENSE | |
jobs: | |
build-windows: | |
name: Build Windows | |
runs-on: windows-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- name: Set up Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: stable | |
- name: Generate code | |
run: flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs | |
- name: Build Flutter application for Windows | |
run: flutter build windows | |
- name: Create ZIP archive | |
run: | | |
# Create a directory to hold the files | |
mkdir Iris | |
# Move the build output to the Iris directory | |
Move-Item -Path "build\windows\x64\runner\Release\*" -Destination "Iris" -Force | |
# Create a ZIP file | |
Compress-Archive -Path "Iris" -DestinationPath "Iris-windows.zip" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Iris-windows | |
path: Iris-windows.zip | |
- name: Rename ZIP archive | |
run: Rename-Item -Path "Iris-windows.zip" -NewName "Iris_windows.zip" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Iris_windows | |
path: Iris_windows.zip | |
build-android: | |
name: Build Android | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- name: Set up Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: stable | |
- name: Generate code | |
run: flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: zulu | |
java-version: 21 | |
- name: Decode and save keystore | |
run: | | |
echo "${{ secrets.KEYSTORE }}" | base64 --decode > android/app/keystore.jks | |
- name: Save key.properties | |
run: | | |
echo "storePassword=${{ secrets.STORE_PASSWORD }}" >> android/key.properties | |
echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/key.properties | |
echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/key.properties | |
echo "storeFile=keystore.jks" >> android/key.properties | |
- name: Build Flutter application for Android | |
run: flutter build apk --split-per-abi | |
- name: Rename armeabi-v7a APK | |
run: mv build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk Iris-android-armeabi-v7a.apk | |
- name: Rename arm64-v8a APK | |
run: mv build/app/outputs/flutter-apk/app-arm64-v8a-release.apk Iris-android-arm64-v8a.apk | |
- name: Rename x86_64 APK | |
run: mv build/app/outputs/flutter-apk/app-x86_64-release.apk Iris-android-x86_64.apk | |
- name: Upload armeabi-v7a APK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Iris-android-armeabi-v7a | |
path: Iris-android-armeabi-v7a.apk | |
- name: Upload arm64-v8a APK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Iris-android-arm64-v8a | |
path: Iris-android-arm64-v8a.apk | |
- name: Upload x86_64 APK | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Iris-android-x86_64 | |
path: Iris-android-x86_64.apk | |
release: | |
name: Release | |
if: ${{ github.ref == 'refs/heads/main' }} | |
runs-on: ubuntu-latest | |
needs: [build-windows, build-android] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get version | |
id: yq | |
uses: mikefarah/yq@master | |
with: | |
cmd: yq '.version' 'pubspec.yaml' | |
- name: Print version | |
run: echo ${{ steps.yq.outputs.result }} | |
- name: Create Tag | |
id: create_tag | |
run: | | |
VERSION="${{ steps.yq.outputs.result }}" | |
TAG_NAME="v${VERSION%%+*}" | |
echo "TAG_NAME=$TAG_NAME" >> "$GITHUB_OUTPUT" | |
echo "Creating new tag $TAG_NAME..." | |
git tag "$TAG_NAME" | |
git push origin "$TAG_NAME" | |
- name: Eextract log | |
run: python extract_log.py ${{ steps.create_tag.outputs.TAG_NAME }} | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
merge-multiple: true | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.create_tag.outputs.TAG_NAME }} | |
body_path: CHANGELOG_${{ steps.create_tag.outputs.TAG_NAME }}.md | |
draft: false | |
prerelease: false | |
files: | | |
artifacts/Iris-windows.zip | |
artifacts/Iris_windows.zip | |
artifacts/Iris-android-armeabi-v7a.apk | |
artifacts/Iris-android-arm64-v8a.apk | |
artifacts/Iris-android-x86_64.apk |