setup-dart
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
Usage
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@v3
- 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
Inputs
The action takes the following inputs:
-
sdk
: Which SDK version to setup. Can be specified using one of two forms:- 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
stable
,beta
,dev
, andmain
. See the Dart SDK archive for details.
- A specific SDK version, e.g.
-
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
Outputs
The action produces the following output:
dart-version
: The version of the Dart SDK that was installed.
Matrix testing example
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: [2.18.0, stable, beta, dev]
steps:
- uses: actions/checkout@v3
- uses: dart-lang/setup-dart@v1
with:
sdk: ${{ matrix.sdk }}
- name: Install dependencies
run: dart pub get
- name: Run tests
run: dart test
License
See the LICENSE file.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md.
Version history
Please see our CHANGELOG.md file.