blob: 24e7d5e512cf8de3d593b0245647440970b55ac4 [file]
# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
name: Dart CI
on:
# Run on PRs and pushes to the default branch.
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: "0 0 * * 0"
env:
PUB_ENVIRONMENT: bot.github
jobs:
# Check code formatting and static analysis on a single OS (linux)
# against Dart stable.
analyze_jni_gen:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./pkgs/jni_gen
strategy:
fail-fast: false
matrix:
sdk: [stable]
steps:
- uses: actions/checkout@v2
- uses: dart-lang/setup-dart@v1.0
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'
test_jni_gen:
needs: analyze_jni_gen
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ./pkgs/jni_gen
strategy:
fail-fast: false
matrix:
# Add macos-latest and/or windows-latest if relevant for this package.
os: [ubuntu-latest]
sdk: [2.17.0, dev]
steps:
- uses: actions/checkout@v2
- uses: dart-lang/setup-dart@v1.0
with:
sdk: stable
- name: Install dependencies
run: dart pub get
- name: Run VM tests
run: dart test --platform vm
- name: Install coverage
run: dart pub global activate coverage
- name: Collect coverage
run: dart pub global run coverage:test_with_coverage
- name: Upload coverage
uses: coverallsapp/github-action@v1.1.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: jni_gen_tests
parallel: true
path-to-lcov: ./pkgs/jni_gen/coverage/lcov.info
## TODO: More minimal test on windows after fixing dev dependency.
## i.e do not rerun analyze and format steps, and do not require flutter.
## IssueRef: https://github.com/dart-lang/jni_gen/issues/15
test_jni:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./pkgs/jni
steps:
- uses: actions/checkout@v3
## Requires flutter to analyze example.
## Using dart alone doesn't work.
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '11'
- run: |
sudo apt-get update -y
sudo apt-get install -y ninja-build libgtk-3-dev
- run: dart pub get
- run: dart run bin/setup.dart
- run: flutter pub get
- name: Check formatting
run: flutter format --output=none --set-exit-if-changed .
- name: Run lints
run: flutter analyze --fatal-infos
- name: Get dependencies
run: dart pub get
- name: Run tests
run: dart test
- name: Install coverage
run: dart pub global activate coverage
- name: Collect coverage
run: dart pub global run coverage:test_with_coverage
- name: Upload coverage
uses: coverallsapp/github-action@v1.1.2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: jni_tests
parallel: true
path-to-lcov: ./pkgs/jni/coverage/lcov.info
build_jni_example_linux:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./pkgs/jni/example
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '11'
- run: |
sudo apt-get update -y
sudo apt-get install -y ninja-build libgtk-3-dev
- run: dart pub get
working-directory: ./pkgs/jni
- run: dart run bin/setup.dart
working-directory: ./pkgs/jni
- run: flutter config --enable-linux-desktop
- run: flutter pub get
- run: flutter test
- run: flutter build linux
build_jni_example_windows:
runs-on: windows-latest
defaults:
run:
working-directory: ./pkgs/jni/example
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '11'
- run: flutter config --enable-windows-desktop
- run: flutter pub get
- run: flutter build windows
build_jni_example_android:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./pkgs/jni/example
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '11'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- run: flutter pub get
- run: flutter build apk
- run: flutter build appbundle
coveralls_finish:
needs: [test_jni_gen, test_jni]
runs-on: ubuntu-latest
steps:
- name: Coveralls finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true