fix formatting #10
This file contains hidden or 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
| # 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 |