Improve Isolates #31
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: Flutter CI | |
on: | |
push: | |
branches: ["master"] | |
pull_request: | |
branches: ["master"] | |
jobs: | |
flutter_test: | |
name: Flutter Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
flutter-version: "3.27.1" | |
- name: Install dependencies | |
run: flutter pub get | |
- name: Verify formatting | |
run: dart format --output=none --set-exit-if-changed . | |
- name: Analyze project source | |
run: dart analyze | |
# Uncomment the following lines when tests are implemented | |
# - name: Run tests | |
# run: flutter test | |
build_iOSApp: | |
name: Build Flutter App (iOS) | |
needs: [flutter_test] | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
flutter-version: "3.27.1" | |
- run: flutter pub get | |
- run: flutter clean | |
- run: | | |
flutter build ios --no-codesign | |
cd build/ios/iphoneos | |
mkdir Payload | |
cd Payload | |
ln -s ../Runner.app | |
cd .. | |
zip -r ios-app.ipa Payload | |
- name: Upload iOS artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios-app | |
path: build/ios/iphoneos/ios-app.ipa | |
build_androidApk: | |
name: Build Flutter App (Android) | |
needs: [flutter_test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: "temurin" | |
java-version: "17" | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
flutter-version: "3.27.1" | |
- run: flutter pub get | |
- run: flutter clean | |
- run: flutter build apk | |
- name: Upload Android artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android-apk | |
path: build/app/outputs/flutter-apk/*.apk | |
build_windowsExe: | |
name: Build Flutter App (Windows) | |
needs: [flutter_test] | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
flutter-version: "3.27.1" | |
- run: flutter pub get | |
- run: flutter clean | |
- run: flutter build windows | |
- run: | | |
cd build\windows\x64\runner\Release\ | |
powershell Compress-Archive -Path * -DestinationPath windows-app.zip | |
- name: Upload Windows artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows-exe | |
path: build/windows/x64/runner/Release/windows-app.zip | |
release: | |
name: Create Release | |
needs: [build_iOSApp, build_androidApk, build_windowsExe] | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download iOS artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: ios-app | |
path: ./ios | |
- name: Download Android artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: android-apk | |
path: ./android | |
- name: Download Windows artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: windows-exe | |
path: ./windows | |
- name: Extract version from pubspec.yaml | |
id: extract_version | |
run: | | |
echo "VERSION=$(grep '^version:' pubspec.yaml | sed 's/version: //')" >> $GITHUB_ENV | |
- name: Create GitHub Release | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: | | |
./ios/ios-app.ipa | |
./android/*.apk | |
./windows/windows-app.zip | |
tag: v${{ env.VERSION }}+unreleased | |
token: ${{ secrets.TOKEN }} | |
allowUpdates: true | |
replacesArtifacts: true | |
body: | | |
Release v${{ env.VERSION }}+unreleased | |
- iOS (unsigned) | |
- Android | |
- Windows |