chore!: update Dart version constraints to ">=3.0.0 <4.0.0" #174
Workflow file for this run
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: build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
semantic-pull-request: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1 | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
dart-version: | |
- "2.17.0" # The minimum Dart SDK version supported by the package. | |
- "stable" | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v4 | |
- name: 🎯 Setup Dart | |
uses: dart-lang/setup-dart@v1 | |
with: | |
sdk: ${{ matrix.dart-version }} | |
- name: 📦 Install Dependencies | |
# Since Dart SDK 3.0.0 (2023-05-10): `dart pub get` and related commands by default also | |
# update the dependencies in the `example` folder (if it exists). Since this package is | |
# Dart only and the example uses Flutter, we need to disable this behavior. | |
# | |
# [See the CHANGELOG for more details](https://github.com/dart-lang/sdk/blob/3ea1820141876d12f8fcfb6c924d4ce4519511dd/CHANGELOG.md). | |
run: | | |
if [[ "${{ matrix.dart-version }}" == "2.17.0" ]]; then | |
dart pub get | |
else | |
dart pub get --no-example | |
fi | |
- name: ✨ Check Formatting | |
run: dart format --set-exit-if-changed lib test | |
- name: 🕵️ Analyze | |
run: dart analyze --fatal-infos --fatal-warnings lib test | |
- name: 🧪 Run Tests | |
run: | | |
dart pub global activate coverage 1.2.0 | |
dart test -j 4 --coverage=coverage --platform="vm" && dart pub global run coverage:format_coverage --lcov --check-ignore --in=coverage --out=coverage/lcov.info --packages=.dart_tool/package_config.json --report-on="lib,test" | |
- name: 📊 Check Code Coverage | |
uses: VeryGoodOpenSource/very_good_coverage@v2 | |
spell-check: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/[email protected] | |
with: | |
includes: | | |
**/*.{dart,md,yaml} | |
!.dart_tool/**/*.{dart,yaml} | |
.*/**/*.yml | |
modified_files_only: false | |
pana: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
- uses: subosito/flutter-action@v2 | |
- name: Install Dependencies | |
run: | | |
flutter packages get | |
flutter pub global activate pana | |
- name: Verify Pub Score | |
run: | | |
PANA=$(pana . --no-warning); PANA_SCORE=$(echo $PANA | sed -n "s/.*Points: \([0-9]*\)\/\([0-9]*\)./\1\/\2/p") | |
echo "score: $PANA_SCORE" | |
IFS='/'; read -a SCORE_ARR <<< "$PANA_SCORE"; SCORE=SCORE_ARR[0]; TOTAL=SCORE_ARR[1] | |
if (( $SCORE < $TOTAL )); then echo "minimum score not met!"; exit 1; fi |