Developed with 💙 by Very Good Ventures 🦄
Reusable GitHub Workflows used at Very Good Ventures 🦄
To get started add very good workflows to an existing GitHub workflow:
# A reusable workflow for Dart packages
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
# A reusable workflow for Flutter packages
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
# A reusable workflow for ensuring commits are semantic
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1
# A reusable workflow for verifying package scores on pub.dev
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/pana.yml@v1
# A reusable workflow for running a spell check
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1
For a more detailed guide, including tips and tricks, check out our blog.
The Dart package workflow consists of the following steps:
- Install Dependencies
- Format
- Analyze
- Run tests
- Check Code Coverage
Optional The number of concurrent test suites run.
Default 4
Optional List of paths to exclude from the coverage report, separated by an empty space. Supports globs
to describe file patterns.
Default ""
Optional Which Dart SDK version to use. It can be a version (e.g. 2.12.0
) or a channel (e.g. stable
):
Default "stable"
Optional The minimum coverage percentage allowed.
Default 100
Optional The path to the root of the Dart package.
Default "."
Optional A space separated list of folders that should be analyzed.
Default "lib test"
Optional A comma separated list of folders that should be checked in code coverage.
Default "lib"
Optional An optional operating system on which to run the workflow.
Default "ubuntu-latest"
Optional An optional command that should be executed immediately after dependencies are installed.
Default ""
Optional An optional, comma-separated list of platform(s) on which to run the tests.
[vm (default), chrome, firefox, safari, node]
Default "vm"
name: My Dart Workflow
on: pull_request
jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
with:
coverage_excludes: "*.g.dart"
dart_sdk: "stable"
platform: "chrome,vm"
working_directory: "examples/my_dart_package"
The Flutter package workflow consists of the following steps:
- Install Dependencies
- Format
- Analyze
- Run tests
- Check Code Coverage
Optional A space separated list of folders that should be analyzed.
Default "lib test"
Optional The number of concurrent test suites run.
Default 4
Optional List of paths to exclude from the coverage report, separated by an empty space. Supports globs
to describe file patterns.
Default ""
Optional The Flutter release channel to use (e.g. stable
).
Default "stable"
Optional The Flutter SDK version to use (e.g. 2.8.1
).
Default ""
Optional The minimum coverage percentage allowed.
Default 100
Optional An optional command that should be executed immediately after dependencies are installed.
Default ""
Optional The path to the root of the Flutter package.
Default "."
Optional Enable the test optimization.
Default true
Note: Since the optimization process groups tests into a single file, golden tests will not work properly. Consider disabling optimizations if you are using golden tests.
Optional Whether to recursively run tests in nested directories.
Default false
Optional An optional operating system on which to run the workflow.
Default "ubuntu-latest"
name: My Flutter Workflow
on: pull_request
jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
with:
coverage_excludes: "*.g.dart"
flutter_channel: "stable"
flutter_version: "2.8.1"
working_directory: "examples/my_flutter_package"
test_recursion: true
Optional Configure which types are allowed (e.g. "feat, fix, docs"
).
Note: If not set then the action uses the list of Conventional Commits type of the commitizen.
Optional Configure which scopes are allowed (e.g. "dart_package, flutter_package"
).
The semantic pull request package workflow consists of the following steps:
- Ensure Commit is Semantic
name: My Workflow
on: pull_request
jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1
The pana workflow consists of the following steps:
- Install Pana
- Verify Pana Score
Optional Which version of package:pana
to use (e.g. 0.21.15
).
Optional The minimum score allowed.
Default 120
Optional The path to the root of the Dart package.
Default "."
Optional An optional operating system on which to run the workflow.
Default "ubuntu-latest"
name: My Workflow
on: pull_request
jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/pana.yml@v1
with:
min_score: 95
working_directory: "examples/my_flutter_package"
The spell check workflow consists of the following steps:
- Git Checkout
- Run Spell Check
Optional The location of the cspell.json
.
Default ".github/cspell.json"
Optional The glob patterns to filter the files to be checked. Use a new line between patterns to define multiple patterns.
Default ""
Optional The path to the root of the Dart package.
Default "."
Optional An optional operating system on which to run the workflow.
Default "ubuntu-latest"
Optional An optional boolean which determines whether to log verbose output.
Default false
Optional An optional boolean which determines whether spell check is run on modified files.
Default true
name: My Workflow
on: pull_request
jobs:
build:
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1
with:
includes: |
**/*.{dart,md,yaml}
!.dart_tool/**/*.{dart,yaml}
.*/**/*.yml
runs_on: macos-latest
modified_files_only: false
working_directory: examples/my_project