setup-dart installs and sets up a Dart SDK for use in GitHub Actions; it:
- downloads the Dart SDK
- adds the
dart
tool to the system path
To install the latest stable Dart SDK and run typical checks:
name: Dart
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
- run: dart pub get
- run: dart format --output=none --set-exit-if-changed .
- run: dart analyze
- run: dart test
The action takes the following inputs:
-
sdk
: Which SDK version to setup. Can be specified using one of three forms:- A release channel, which will install the latest build from that channel.
Available channels are
stable
,beta
,dev
, andmain
. See the Dart SDK archive for details. - An SDK release version - e.g.
2.19
or3.1
. This will install the latest patch release for that specific release version. - A specific SDK version, e.g.
2.19.0
or2.12.0-1.4.beta
.
- A release channel, which will install the latest build from that channel.
Available channels are
-
flavor
: Which build flavor to setup.- The available build flavors are
release
andraw
. - The
release
flavor contains published builds. - The
raw
flavor contains unpublished builds; these can be used by developers to test against SDK versions before a signed release is available. Note that themain
release channel only supports theraw
build flavor.
- The available build flavors are
-
architecture
: The CPU architecture to setup support for.- Valid options are
x64
,ia32
,arm
, andarm64
. - Note that not all CPU architectures are supported on all operating systems; see the Dart system requirements for valid combinations.
- Valid options are
The action produces the following output:
dart-version
: The version of the Dart SDK that was installed.
You can create matrix jobs that run tests on multiple operating systems, and multiple versions of the Dart SDK.
The following example creates a matrix across two dimensions:
- three major operating systems: Linux, MacOS, and Windows
- several Dart SDK versions: a specific version, the latest stable, beta, and dev
name: Dart
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
sdk: [3.1, stable, beta]
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
with:
sdk: ${{ matrix.sdk }}
- name: Install dependencies
run: dart pub get
- name: Run tests
run: dart test
See the LICENSE file.
Contributions are welcome! Please see CONTRIBUTING.md.
Please see our CHANGELOG.md file.