27e7984179
* feat: add shorebird_code_push package * remove example and extra code * update github workflow * fix gha
80 lines
2.4 KiB
YAML
80 lines
2.4 KiB
YAML
name: Dart Package Workflow
|
|
description: Build and test your Dart packages.
|
|
|
|
inputs:
|
|
codecov_token:
|
|
required: true
|
|
description: The Codecov token used to upload coverage
|
|
concurrency:
|
|
required: false
|
|
default: "4"
|
|
description: The value of the concurrency flag (-j) used when running tests
|
|
coverage_excludes:
|
|
required: false
|
|
default: ""
|
|
description: Globs to exclude from coverage
|
|
dart_sdk:
|
|
required: false
|
|
default: "stable"
|
|
description: "The dart sdk version to use"
|
|
working_directory:
|
|
required: false
|
|
default: "."
|
|
description: The working directory for this workflow
|
|
min_coverage:
|
|
required: false
|
|
default: "100"
|
|
description: The minimum coverage percentage value
|
|
analyze_directories:
|
|
required: false
|
|
default: "lib test"
|
|
description: Directories to analyze
|
|
report_on:
|
|
required: false
|
|
default: "lib"
|
|
description: Directories to report on when collecting coverage
|
|
platform:
|
|
required: false
|
|
default: "vm"
|
|
description: Platform to use when running tests
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- uses: dart-lang/setup-dart@v1
|
|
with:
|
|
sdk: ${{inputs.dart_sdk}}
|
|
|
|
- name: Install Dependencies
|
|
working-directory: ${{ inputs.working_directory }}
|
|
shell: ${{ inputs.shell }}
|
|
run: dart pub get
|
|
|
|
- name: Format
|
|
working-directory: ${{ inputs.working_directory }}
|
|
shell: ${{ inputs.shell }}
|
|
run: dart format --set-exit-if-changed .
|
|
|
|
- name: Analyze
|
|
working-directory: ${{ inputs.working_directory }}
|
|
shell: ${{ inputs.shell }}
|
|
run: dart analyze --fatal-warnings ${{inputs.analyze_directories}}
|
|
|
|
- name: Test
|
|
working-directory: ${{ inputs.working_directory }}
|
|
shell: ${{ inputs.shell }}
|
|
run: |
|
|
dart pub global activate coverage
|
|
dart test -j ${{inputs.concurrency}} --coverage=coverage --platform=${{inputs.platform}} && dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --packages=.dart_tool/package_config.json --report-on=${{inputs.report_on}} --check-ignore
|
|
|
|
- name: Upload Coverage
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
token: ${{ inputs.codecov_token }}
|
|
|
|
- uses: VeryGoodOpenSource/very_good_coverage@v2
|
|
with:
|
|
path: ${{inputs.working_directory}}/coverage/lcov.info
|
|
exclude: ${{inputs.coverage_excludes}}
|
|
min_coverage: ${{inputs.min_coverage}}
|