Dart CI #39
This file contains 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
name: Dart CI | |
on: | |
# Run on PRs and pushes to the default branch. | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
schedule: | |
# Run nightly. | |
- cron: "0 0 * * 0" | |
env: | |
PUB_ENVIRONMENT: bot.github | |
jobs: | |
# Check code formatting and static analysis on a single OS (linux) | |
# against Dart dev. | |
analyze: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
sdk: [dev, 3.4] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 | |
with: | |
sdk: ${{ matrix.sdk }} | |
- id: install | |
name: Install dependencies | |
run: dart pub get | |
- name: Check formatting | |
run: dart format --output=none --set-exit-if-changed . | |
if: always() && steps.install.outcome == 'success' | |
- name: Analyze code | |
run: dart analyze --fatal-infos | |
if: always() && steps.install.outcome == 'success' | |
# Run tests on a matrix of several SDK releases. | |
test: | |
needs: analyze | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
sdk: [dev, 3.4] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 | |
with: | |
sdk: ${{ matrix.sdk }} | |
- name: Install dependencies | |
run: dart pub get | |
- name: Run Chrome tests - js | |
run: dart test --platform chrome | |
- name: Run Chrome tests - wasm | |
run: dart test --platform chrome --compiler dart2wasm | |
# Ensure the generation script runs. | |
generation: | |
needs: analyze | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
sdk: [dev] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 | |
with: | |
sdk: ${{ matrix.sdk }} | |
- name: Install Dart dependencies | |
run: dart pub get | |
- name: Install Node dependencies | |
run: npm install | |
working-directory: tool/generator | |
- name: Run the generator | |
run: dart tool/update_bindings.dart | |
- name: Analyze code | |
run: dart analyze --fatal-infos | |
# Test the contributed `dart fix` fixes. | |
dart-fix: | |
needs: analyze | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
sdk: [main] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 | |
with: | |
sdk: ${{ matrix.sdk }} | |
- name: Install Dart dependencies | |
run: dart pub get | |
- name: Test the declarative fixes | |
run: dart fix --compare-to-golden | |
working-directory: test_fixes |