Skip to content

FED-3253 Officially support Dart 3 #349

FED-3253 Officially support Dart 3

FED-3253 Officially support Dart 3 #349

Workflow file for this run

name: Dart CI
on:
push:
branches:
- 'master'
- 'test_consume_*'
pull_request:
branches:
- '**'
jobs:
# Run as a separate job outside the Dart SDK matrix below,
# since we can only emit a single SBOM.
create-sbom-release-asset:
name: Create SBOM Release Asset
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
with:
sdk: 2.19.6 # This version doesn't matter so long as it resolves.
- run: dart pub get
- name: Publish SBOM to Release Assets
uses: anchore/sbom-action@v0
with:
path: ./
format: cyclonedx-json
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sdk: [2.19.6, stable]
steps:
- uses: actions/checkout@v2
- id: setup-dart
uses: dart-lang/setup-dart@v1
with:
sdk: ${{ matrix.sdk }}
- name: Print Dart SDK version
run: dart --version
- name: Delete Dart-2-only files when running on Dart 3
run: |
DART_VERSION="${{ steps.setup-dart.outputs.dart-version }}"
if [[ "$DART_VERSION" =~ ^3 ]]; then
./tool/delete_dart_2_only_files.sh
fi
- id: install
name: Install dependencies
run: dart pub get
- name: Validate dependencies
run: dart run dependency_validator
if: always() && steps.install.outcome == 'success'
- name: Verify formatting
run: dart run dart_dev format --check
if: ${{ matrix.sdk == '2.19.6' }}
- name: Analyze project source
run: dart analyze
if: always() && steps.install.outcome == 'success'
- name: Run tests (DDC)
run: |
dart run build_runner test --delete-conflicting-outputs -- --preset dartdevc
if: always() && steps.install.outcome == 'success'
timeout-minutes: 8
- name: Run tests (dart2js)
run: |
dart run build_runner test --delete-conflicting-outputs --release -- --preset dart2js
if: always() && steps.install.outcome == 'success'
timeout-minutes: 8