Files
shorebird/.github/actions/dart_package/action.yaml
T
dependabot[bot] 9beefe8370 chore(deps): bump the gh-deps group across 2 directories with 1 update (#3816)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-23 13:44:27 -07:00

88 lines
2.8 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
workspace_root:
required: false
default: "."
description: The root of the project workspace (if using Dart workspaces)
runs:
using: "composite"
steps:
- name: 🎯 Setup Dart
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=${{inputs.workspace_root}}/.dart_tool/package_config.json --report-on=${{inputs.report_on}} --check-ignore
# Per https://stackoverflow.com/questions/73402042/github-action-expressions-split-string
- name: 🔗 Split package name
env:
PACKAGE_PATH: ${{ inputs.working_directory}}
id: split
shell: ${{ inputs.shell }}
run: echo "package_name=${PACKAGE_PATH##*/}" >> $GITHUB_OUTPUT
- name: 📊 Upload Coverage
uses: codecov/codecov-action@v7
with:
flags: ${{ steps.split.outputs.package_name }}
token: ${{ inputs.codecov_token }}