chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 #854
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: ci | |
on: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
# Ensures that every PR has a semantic title or commit. | |
semantic_pull_request: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1 | |
# Enforces the spelling of words in the repository. | |
spell_check: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 | |
with: | |
config: cspell.json | |
includes: | | |
**/*.{dart,md,yaml} | |
!.dart_tool/**/*.{dart,yaml} | |
.*/**/*.yml | |
runs_on: macos-latest | |
modified_files_only: false | |
# Format and build the docs. This job will always run but it will end early | |
# if the docs haven't changed. | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: ☕️ Setup Change Filters | |
uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
docs: | |
- '.github/actions/docs/action.yaml' | |
- 'docs/**' | |
- name: 📑 Format, Lint and Build Docs | |
uses: ./.github/actions/docs | |
if: steps.changes.outputs.docs == 'true' | |
# Format, analyze, and test the example code. This job will always run but it will end | |
# early if the example code hasn't changed. | |
example: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: ☕️ Setup Change Filters | |
uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
example: | |
- '.github/actions/flutter_package/action.yaml' | |
- 'example/**' | |
- name: 📑 Format, Analyze and Test Example | |
uses: ./.github/actions/flutter_package | |
if: steps.changes.outputs.example == 'true' | |
with: | |
working_directory: example | |
# Generate a map of items in the output, each key indicates | |
# a certain group where it's value is a list of "types" that | |
# had changes within the scope of that group. | |
changes: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: read | |
outputs: | |
packages: ${{ steps.packages.outputs.changes }} | |
bricks: ${{ steps.bricks.outputs.changes }} | |
actions: ${{ steps.actions.outputs.changes }} | |
steps: | |
- uses: dorny/paths-filter@v2 | |
id: packages | |
with: | |
filters: | | |
fluttium: | |
- ./.github/actions/flutter_package | |
- packages/fluttium/** | |
fluttium_cli: | |
- ./.github/actions/dart_package | |
- packages/fluttium_cli/** | |
fluttium_driver: | |
- ./.github/actions/dart_package | |
- packages/fluttium_driver/** | |
fluttium_interfaces: | |
- ./.github/actions/dart_package | |
- packages/fluttium_interfaces/** | |
fluttium_protocol: | |
- ./.github/actions/dart_package | |
- packages/fluttium_protocol/** | |
- uses: dorny/paths-filter@v2 | |
id: bricks | |
with: | |
filters: | | |
fluttium_launcher: | |
- ./.github/actions/dart_package | |
- bricks/fluttium_launcher/hooks/** | |
fluttium_test_runner: | |
- ./.github/actions/dart_package | |
- bricks/fluttium_test_runner/hooks/** | |
- uses: dorny/paths-filter@v2 | |
id: actions | |
with: | |
filters: | | |
log_action: | |
- ./.github/actions/flutter_package | |
- actions/log_action/** | |
# Run pana on the packages that have changed. | |
# | |
# If the matrix is empty, no jobs will be created. | |
pana_packages: | |
needs: changes | |
if: ${{ needs.changes.outputs.packages != '[]' }} | |
# TODO(wolfen): remove after release of packages | |
continue-on-error: true | |
strategy: | |
matrix: | |
package: ${{ fromJSON(needs.changes.outputs.packages) }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: 📊 Verify Pana Score (${{ matrix.package }}) | |
uses: ./.github/actions/pana | |
with: | |
working_directory: packages/${{ matrix.package }} | |
# Build and test the dart packages that have changed. | |
# | |
# If the matrix is empty, no jobs will be created. | |
build_packages: | |
needs: changes | |
if: ${{ needs.changes.outputs.packages != '[]' }} | |
strategy: | |
matrix: | |
package: ${{ fromJSON(needs.changes.outputs.packages) }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: ❓ Dart Or Flutter | |
id: dart_or_flutter | |
run: | | |
echo "dart_or_flutter=$(cat packages/${{ matrix.package }}/pubspec.yaml | grep -q 'sdk: flutter' && echo true || echo false)" >> $GITHUB_OUTPUT | |
- name: 🐦 Dart Format, Analyze and Test (${{ matrix.package }}) | |
if: steps.dart_or_flutter.outputs.dart_or_flutter == 'false' | |
uses: ./.github/actions/dart_package | |
with: | |
working_directory: packages/${{ matrix.package }} | |
- name: 💙 Flutter Format, Analyze and Test (${{ matrix.package }}) | |
if: steps.dart_or_flutter.outputs.dart_or_flutter == 'true' | |
uses: ./.github/actions/flutter_package | |
with: | |
working_directory: packages/${{ matrix.package }} | |
# Build and test the bricks that have changed. | |
# | |
# If the matrix is empty, no jobs will be created. | |
build_bricks: | |
needs: changes | |
if: ${{ needs.changes.outputs.bricks != '[]' }} | |
strategy: | |
matrix: | |
brick: ${{ fromJSON(needs.changes.outputs.bricks) }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: ✨ Format, Analyze and Test (${{ matrix.brick }}) | |
uses: ./.github/actions/dart_package | |
with: | |
working_directory: bricks/${{ matrix.brick }}/hooks | |
analyze_directories: . | |
report_on: post_gen.dart,pre_gen.dart | |
# Run pana on the actions that have changed. | |
# | |
# If the matrix is empty, no jobs will be created. | |
pana_actions: | |
needs: changes | |
if: ${{ needs.changes.outputs.actions != '[]' }} | |
# TODO(wolfen): remove after release of packages | |
continue-on-error: true | |
strategy: | |
matrix: | |
package: ${{ fromJSON(needs.changes.outputs.actions) }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: 📊 Verify Pana Score (${{ matrix.package }}) | |
uses: ./.github/actions/pana | |
with: | |
working_directory: actions/${{ matrix.package }} | |
# Build and test the actions that have changed. | |
# | |
# If the matrix is empty, no jobs will be created. | |
build_actions: | |
needs: changes | |
if: ${{ needs.changes.outputs.actions != '[]' }} | |
strategy: | |
matrix: | |
brick: ${{ fromJSON(needs.changes.outputs.actions) }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📚 Git Checkout | |
uses: actions/checkout@v3 | |
- name: ✨ Format, Analyze and Test (${{ matrix.brick }}) | |
uses: ./.github/actions/flutter_package | |
with: | |
working_directory: actions/${{ matrix.brick }} | |
# Simply exists to be the final job in the workflow. This is required to | |
# ensure that the workflow fails if any of the needed jobs fail. | |
# | |
# The build and pana job might not spawn but as long as the other jobs | |
# succeed this job will be considered successful through skipping. | |
ci: | |
needs: | |
[ | |
semantic_pull_request, | |
spell_check, | |
docs, | |
example, | |
pana_packages, | |
pana_actions, | |
build_packages, | |
build_bricks, | |
build_actions, | |
] | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Exit out if failed | |
if: ${{ contains(join(needs.*.result, ','), 'failure') }} | |
run: exit 1 |