Skip to content

ci: fix flutter minor version in test workflows #67

ci: fix flutter minor version in test workflows

ci: fix flutter minor version in test workflows #67

Workflow file for this run

# Runs flutter unit tests, formatting test and CHANGELOG.md validation on every PR to main.
name: test
on:
pull_request:
branches:
- main
workflow_dispatch:
# Ensure that new pushes/updates cancel running jobs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: 3.27.x
channel: stable
cache: true
- name: Flutter setup
run: |
flutter doctor -v
flutter pub get
- name: Format check
run: dart format -l 120 -o none --set-exit-if-changed .
- name: Flutter test # takes ~ 60s, hence we store the artifact for sonar
run: |
dart run build_runner build --delete-conflicting-outputs
flutter test --coverage
- uses: actions/upload-artifact@v4
with:
name: gen_srcs-and-coverage
path: |
coverage/
**/*.g.dart
**/*.mocks.dart
package_scorer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: axel-op/dart-package-analyzer@v3
id: analysis
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
### FROM HERE: ALL DONE AFTER VALIDATION SUCCEEDS
sonar_analysis:
name: SonarScanning on SonarCloud
runs-on: ubuntu-latest
needs: [validation]
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: 3.27.x
channel: stable
cache: true
- name: Get dependencies
run: flutter pub get
- name: Download gen srcs and coverage
uses: actions/download-artifact@v4
with:
name: gen_srcs-and-coverage
- name: Official SonarQube Scan
uses: SonarSource/[email protected]
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
build-android:
name: Build Android
runs-on: ubuntu-latest
needs: [validation]
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
sdk: ["3.22.3", "3.27.x"]
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: ${{ matrix.sdk }}
cache: true
- uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: "gradle"
- name: Make secret env file accessible for envied generation
uses: timheuer/[email protected]
with:
fileName: ".env"
fileDir: "./example"
encodedString: ${{ secrets.EXAMPLE_APP_ENV_FILE_PROD_BASE64 }}
- run: flutter pub get
- run: dart run build_runner build --delete-conflicting-outputs
- run: flutter build appbundle --profile --no-pub
build-iOS:
name: Build iOS
runs-on: macos-latest
needs: [validation]
defaults:
run:
working-directory: example
strategy:
fail-fast: false
matrix:
sdk: ["3.22.3", "3.27.x"]
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: ${{ matrix.sdk }}
cache: true
- name: Make secret env file accessible for envied generation
uses: timheuer/[email protected]
with:
fileName: ".env"
fileDir: "./example"
encodedString: ${{ secrets.EXAMPLE_APP_ENV_FILE_PROD_BASE64 }}
- run: flutter pub get
- run: dart run build_runner build --delete-conflicting-outputs
- run: flutter build ios --no-codesign