| name: Tests |
| on: |
| push: |
| branches: |
| - main |
| pull_request: |
| |
| # Declare default permissions as read only. |
| permissions: read-all |
| |
| jobs: |
| unit-test: |
| name: Unit tests on ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest, macos-latest] |
| steps: |
| # Set up Flutter. |
| - name: Clone Flutter repository with master channel |
| uses: subosito/flutter-action@1e6ee87cb840500837bcd50a667fb28815d8e310 |
| with: |
| channel: master |
| - run: flutter doctor -v |
| |
| # Checkout gallery code and get packages. |
| - name: Checkout gallery code |
| uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b |
| - run: flutter pub get -v |
| |
| # Analyze, check formatting, and run unit tests. |
| - run: flutter analyze |
| - name: Ensure the Dart code is formatted correctly |
| run: flutter format --set-exit-if-changed --dry-run . |
| - name: Run Flutter unit tests |
| run: flutter test |
| |
| benchmark-test: |
| name: Benchmark tests |
| runs-on: ubuntu-latest |
| steps: |
| # Set up Flutter. |
| - name: Clone Flutter repository with master channel |
| uses: subosito/flutter-action@1e6ee87cb840500837bcd50a667fb28815d8e310 |
| with: |
| channel: master |
| - run: flutter doctor -v |
| - run: flutter config --enable-web |
| |
| # Checkout gallery code and get packages. |
| - name: Checkout gallery code |
| uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b |
| - run: flutter pub get -v |
| |
| - run: flutter test test_benchmarks |
| |
| golden-test: |
| name: Golden tests |
| runs-on: macos-latest |
| steps: |
| # Set up Flutter. |
| - name: Clone Flutter repository with master channel |
| uses: subosito/flutter-action@1e6ee87cb840500837bcd50a667fb28815d8e310 |
| with: |
| channel: master |
| - run: flutter doctor -v |
| |
| # Checkout gallery code and get packages. |
| - name: Checkout gallery code |
| uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b |
| - run: flutter pub get -v |
| |
| # Run the golden tests and upload failed test artifacts. |
| - run: flutter test test_goldens |
| - name: Upload goldens if tests fail |
| uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 |
| if: failure() |
| with: |
| name: goldens |
| path: test_goldens/failures/ |