Skip to content

- Add GitHub Actions workflows for CI, code quality, and release #7

- Add GitHub Actions workflows for CI, code quality, and release

- Add GitHub Actions workflows for CI, code quality, and release #7

Workflow file for this run

name: Flutter CI
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
jobs:
flutter_test:
name: Flutter Test and Analyze
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.35.4'
channel: 'stable'
cache: true
- name: Get dependencies
run: flutter pub get
- name: Check format
run: dart format --output=none --set-exit-if-changed .
- name: Analyze
run: flutter analyze
- name: Run tests
run: flutter test --coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: coverage/lcov.info
build_android:
name: Build Android App
runs-on: ubuntu-latest
needs: flutter_test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.35.4'
channel: 'stable'
cache: true
- name: Get dependencies
run: flutter pub get
- name: Build APK
run: flutter build apk --release
- name: Build App Bundle
run: flutter build appbundle --release
- name: Upload APK as artifact
uses: actions/upload-artifact@v4
with:
name: release-apk
path: build/app/outputs/flutter-apk/app-release.apk
- name: Upload App Bundle as artifact
uses: actions/upload-artifact@v4
with:
name: release-appbundle
path: build/app/outputs/bundle/release/app-release.aab
build_ios:
name: Build iOS App
runs-on: macos-latest
needs: flutter_test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.35.4'
channel: 'stable'
cache: true
- name: Get dependencies
run: flutter pub get
- name: Build iOS
run: flutter build ios --release --no-codesign
- name: Create IPA
run: |
cd build/ios/iphoneos
mkdir Payload
cp -r Runner.app Payload/
zip -r app-release.ipa Payload/
- name: Upload IPA as artifact
uses: actions/upload-artifact@v4
with:
name: release-ipa
path: build/ios/iphoneos/app-release.ipa