Skip to content

chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 #854

chore(deps): bump peaceiris/actions-gh-pages from 3 to 4

chore(deps): bump peaceiris/actions-gh-pages from 3 to 4 #854

Workflow file for this run

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