Skip to content

fix formatting

fix formatting #10

Workflow file for this run

# CI pipeline: lint → unit tests → widget tests → build web + Android.
# Runs on GitHub Actions (workflow format is GitHub's); the pipeline itself is
# generic: checkout, install toolchain, deps, lint, test, build. Same sequence
# can be reproduced in GitLab CI, Jenkins, or any CI using the same commands
# (see README and Makefile). All jobs must pass before merge.
name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
env:
FLUTTER_CHANNEL: stable
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Get dependencies
run: flutter pub get
- name: Check no outdated deps message
run: bash script/check_no_outdated_deps.sh
- name: Generate l10n
run: flutter gen-l10n
- name: Analyze
run: flutter analyze lib test
- name: Check format
run: dart format --set-exit-if-changed lib test
test-unit:
name: Unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Get dependencies
run: flutter pub get
- name: Generate l10n
run: flutter gen-l10n
- name: Run unit tests
run: flutter test test/domain test/storage test/router test/l10n test/deps_no_outdated_message_test.dart test/format_check_test.dart
test-widget:
name: Widget tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Get dependencies
run: flutter pub get
- name: Generate l10n
run: flutter gen-l10n
- name: Run widget tests
run: flutter test test/screens test/helpers
build-web:
name: Build Web
runs-on: ubuntu-latest
needs: [lint, test-unit, test-widget]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Get dependencies
run: flutter pub get
- name: Generate l10n
run: flutter gen-l10n
- name: Build web
run: flutter build web --release
build-android:
name: Build Android APK
runs-on: ubuntu-latest
needs: [lint, test-unit, test-widget]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: ${{ env.FLUTTER_CHANNEL }}
cache: true
- name: Get dependencies
run: flutter pub get
- name: Generate l10n
run: flutter gen-l10n
- name: Accept Android licenses
run: yes | flutter doctor --android-licenses
- name: Build APK
run: flutter build apk --release