Merge pull request #3 from nini22P/dev #71
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: 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 | |
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: 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 | |
- name: Rename APK | |
run: mv build/app/outputs/flutter-apk/app-release.apk Iris_android.apk | |
- name: Upload Android artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Iris_android | |
path: Iris_android.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 Windows artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: Iris_windows | |
path: artifacts | |
- name: Download Android artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: Iris_android | |
path: artifacts | |
- 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_android.apk |