Update Reference Screenshots #1662
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: 'Update Reference Screenshots' | |
on: | |
workflow_dispatch: | |
inputs: | |
# Screenshots can be updated for all components or specified component(s). | |
# If the `component` variable is set, then the test has the option to | |
# - run all the instances of the specified component(s) in the `src/components` folder | |
# -- For example: if the `component` value is "item", then the following command will be: `npm run test.e2e item` | |
# - run the specified file path | |
# -- For example: if the `component` value is "src/components/item/test/basic", then the following command will be: `npm run test.e2e src/components/item/test/basic` | |
# - run multiple specified components based on the space-separated value | |
# -- For example: if the `component` value is "item basic", then the following command will be: `npm run test.e2e item basic` | |
# -- For example: if the `component` value is "src/components/item/test/basic src/components/item/test/a11y", then the following command will be: `npm run test.e2e src/components/item/test/basic src/components/item/test/a11y` | |
# | |
# If the `component` variable is not set, then the test will run all the instances of the components in the `src/components` folder. | |
# - For example: `npm run test.e2e` | |
# | |
# More common options can be found at the Playwright Command line page: https://playwright.dev/docs/test-cli | |
component: | |
description: 'What component(s) should be updated? (leave blank to update all or use a space-separated list for multiple components)' | |
required: false | |
default: '' | |
jobs: | |
build-core: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-core | |
test-core-screenshot: | |
strategy: | |
# This ensures that all screenshot shard | |
# failures are reported so the dev can | |
# review everything at once. | |
fail-fast: false | |
matrix: | |
# Divide the tests into n buckets | |
# and run those buckets in parallel. | |
# To increase the number of shards, | |
# add new items to the shard array | |
# and change the value of totalShards | |
# to be the length of the shard array. | |
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] | |
totalShards: [20] | |
needs: [build-core] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-core-screenshot | |
with: | |
shard: ${{ matrix.shard }} | |
totalShards: ${{ matrix.totalShards }} | |
update: true | |
component: ${{ inputs.component }} | |
update-reference-screenshots: | |
runs-on: ubuntu-latest | |
needs: [test-core-screenshot] | |
steps: | |
- uses: actions/checkout@v4 | |
# Normally, we could just push with the | |
# default GITHUB_TOKEN, but that will | |
# not cause the build workflow | |
# to re-run. We use Ionitron's | |
# Personal Access Token instead | |
# to allow for this build workflow | |
# to run when the screenshots are pushed. | |
with: | |
token: ${{ secrets.IONITRON_TOKEN }} | |
- uses: ./.github/workflows/actions/update-reference-screenshots |