Skip to content

Rc/8.2.0

Rc/8.2.0 #176

Workflow file for this run

name: Flutter CI
on:
push:
branches:
- master
paths-ignore:
- "**/*.md"
- ".github/**"
pull_request:
branches:
- master
paths-ignore:
- "**/*.md"
- ".github/**"
workflow_dispatch:
env:
FLUTTER_VERSION: 3.24.0
PANA_VERSION: 0.22.8
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v6
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: 📦 Install Additional Tooling
# Add additional Flutter tooling
run: |
dart pub global activate pana ${{ env.PANA_VERSION }}
- name: ✂ Format Code
run: dart format --set-exit-if-changed .
- name: 📊 Analyze Code
run: flutter analyze --fatal-infos --fatal-warnings .
- name: 🔎 Pana Check
run: pana --no-warning
test:
runs-on: ubuntu-latest
needs: lint
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v6
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: 🧪 Run Tests
run: flutter test
build-android:
runs-on: ubuntu-latest
needs: test
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v6
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: 🤖 Build Android app
working-directory: example
run: flutter build apk --release
build-ios:
runs-on: macos-latest
needs: test
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v6
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: 🍎 Build iOS app
working-directory: example
run: flutter build ios --release --no-codesign
# Exercises the Swift Package Manager integration path, which the CocoaPods
# `build-ios` job never reads (SPM is opt-in behind a feature flag). Uses a
# throwaway consumer app instead of the example app: a plain consumer never
# gets Flutter's example-only local package override, so it builds regardless
# of the checkout directory name (the example app would require the checkout
# dir to be named `freerasp`). FlutterFramework SwiftPM package requires 3.41.0+.
build-ios-spm:
runs-on: macos-latest
needs: test
steps:
- name: 📚 Git Checkout
uses: actions/checkout@v6
- name: 🐦 Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.44.0
cache: true
- name: 📦 Enable Swift Package Manager
run: flutter config --enable-swift-package-manager
- name: 🍎 Build iOS consumer app with SPM
run: |
set -euo pipefail
flutter create --platforms=ios "$RUNNER_TEMP/spm_consumer"
cd "$RUNNER_TEMP/spm_consumer"
flutter pub add freerasp --path "$GITHUB_WORKSPACE"
flutter build ios --release --no-codesign