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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # 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