test(atomic): add tests for atomic-commerce-recommendation-list #23397
Workflow file for this run
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: PR Robot | |
on: | |
pull_request: | |
merge_group: | |
env: | |
CYPRESS_VERIFY_TIMEOUT: 60000 | |
jobs: | |
report-size: | |
if: github.event_name == 'pull_request' | |
name: 'Report bundle size' | |
runs-on: ubuntu-latest | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
GITHUB_CREDENTIALS: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4 | |
with: | |
node-version-file: '.nvmrc' | |
- run: npm ci | |
- run: npm run pr:report | |
build: | |
name: 'Build' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/build | |
- uses: ./.github/actions/commit-generated-files | |
lint-check: | |
name: 'Check with linter' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- run: npm run lint:check | |
unit-test: | |
name: 'Run unit tests' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- run: npm test | |
e2e-atomic-csp-test: | |
name: 'Run e2e tests on Atomic CSP' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-csp | |
playwright-atomic: | |
name: 'Run Playwright tests for Atomic' | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
shardIndex: | |
[ | |
1, | |
2, | |
3, | |
4, | |
5, | |
6, | |
7, | |
8, | |
9, | |
10, | |
11, | |
12, | |
13, | |
14, | |
15, | |
16, | |
17, | |
18, | |
19, | |
20, | |
21, | |
22, | |
23, | |
24, | |
] | |
shardTotal: [24] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- run: npm run build | |
- uses: ./.github/actions/playwright-atomic | |
with: | |
shardIndex: ${{ matrix.shardIndex }} | |
shardTotal: ${{ matrix.shardTotal }} | |
merge-playwright-reports: | |
name: 'Merge Playwright reports' | |
environment: PR Artifacts | |
if: ${{ !cancelled() }} | |
needs: | |
- 'playwright-atomic' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- run: npm run build | |
- uses: ./.github/actions/merge-playwright-reports | |
- name: Generate a token | |
if: ${{ always() && github.event_name == 'pull_request'}} | |
id: generate-token | |
uses: actions/create-github-app-token@31c86eb3b33c9b601a1f60f98dcbfd1d70f379b4 # v1 | |
with: | |
app-id: ${{ secrets.GH_APP_ID }} | |
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }} | |
owner: coveo | |
repositories: 'ui-kit-prs' | |
- uses: ./.github/actions/publish-pr-review-site | |
if: ${{ always() && github.event_name == 'pull_request'}} | |
with: | |
token: ${{ steps.generate-token.outputs.token }} | |
copy: true | |
e2e-atomic-test: | |
name: 'Run e2e tests on Atomic' | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
containers: | |
[ | |
1, | |
2, | |
3, | |
4, | |
5, | |
6, | |
7, | |
8, | |
9, | |
10, | |
11, | |
12, | |
13, | |
14, | |
15, | |
16, | |
17, | |
18, | |
19, | |
20, | |
21, | |
22, | |
23, | |
24, | |
25, | |
26, | |
27, | |
28, | |
29, | |
30, | |
31, | |
32, | |
33, | |
34, | |
35, | |
36, | |
37, | |
38, | |
39, | |
40, | |
41, | |
42, | |
43, | |
44, | |
45, | |
46, | |
47, | |
48, | |
49, | |
50, | |
51, | |
52, | |
53, | |
54, | |
55, | |
56, | |
57, | |
58, | |
59, | |
60, | |
] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
SPLIT: ${{ strategy.job-total }} | |
SPLIT_INDEX: ${{ strategy.job-index }} | |
e2e-atomic-screenshots: | |
name: 'Run e2e screenshots tests on Atomic' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-screenshots | |
e2e-atomic-react-test: | |
name: 'Run e2e tests on Atomic React' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-react | |
e2e-atomic-react-nextjs-test: | |
name: 'Run e2e tests on Atomic React NextJS' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-next | |
e2e-iife-test: | |
name: 'Run e2e tests for IIFE' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
# TODO: KIT-3537 - https://coveord.atlassian.net/browse/KIT-3538 | |
# - uses: ./.github/actions/setup | |
# - uses: ./.github/actions/e2e-iife | |
e2e-atomic-angular-test: | |
name: 'Run e2e tests on Atomic Angular' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-angular | |
e2e-atomic-vuejs-test: | |
name: 'Run e2e tests on Vue.js sample' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-vuejs | |
e2e-atomic-stencil-test: | |
name: 'Run e2e tests on Stencil.js sample' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-stencil | |
playwright-atomic-hosted-page-test: | |
name: 'Run e2e tests for Atomic Hosted Page' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- run: npm run build | |
- uses: ./.github/actions/playwright-atomic-hosted-pages | |
e2e-atomic-insight-panel-test: | |
name: 'Run e2e tests on Atomic insight panel' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-insight-panel | |
e2e-headless-ssr-test-app-dev: | |
name: 'Run e2e tests on Headless SSR App router sample in dev mode' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-headless-ssr-app-dev | |
e2e-headless-ssr-test-app-prod: | |
name: 'Run e2e tests on Headless SSR App router sample in prod mode' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-headless-ssr-app-prod | |
e2e-headless-ssr-test-pages-dev: | |
name: 'Run e2e tests on Headless SSR Pages router sample in dev mode' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-headless-ssr-pages-dev | |
e2e-headless-ssr-test-pages-prod: | |
name: 'Run e2e tests on Headless SSR Pages router sample in prod mode' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-headless-ssr-pages-prod | |
should-e2e-quantic: | |
name: 'Should test Quantic?' | |
needs: build | |
runs-on: ubuntu-latest | |
outputs: | |
shouldRunQuantic: ${{ steps.shouldRunQuantic.outputs.shouldRunQuantic }} | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
fetch-depth: 0 | |
- uses: ./.github/actions/setup | |
- run: node ./scripts/ci/hasFileChanged.mjs shouldRunQuantic 'packages/quantic/**/*' 'packages/headless/**/*' package.json package-lock.json | |
id: shouldRunQuantic | |
e2e-quantic: | |
name: 'Run Quantic E2E tests' | |
needs: should-e2e-quantic | |
if: ${{ needs.should-e2e-quantic.outputs.shouldRunQuantic == 'true' }} | |
uses: ./.github/workflows/e2e-quantic.yml | |
secrets: | |
SFDX_AUTH_CLIENT_ID: ${{ secrets.SFDX_AUTH_CLIENT_ID }} | |
SFDX_AUTH_JWT_KEY: ${{ secrets.SFDX_AUTH_JWT_KEY }} | |
is-valid-pr: | |
name: 'Confirm build is valid (PR)' | |
if: ${{ always() && github.event_name == 'pull_request'}} | |
needs: | |
- 'build' | |
- 'lint-check' | |
- 'unit-test' | |
- 'playwright-atomic' | |
- 'playwright-atomic-hosted-page-test' | |
- 'e2e-atomic-test' | |
- 'e2e-atomic-csp-test' | |
- 'e2e-quantic' | |
- 'e2e-atomic-screenshots' | |
- 'e2e-atomic-react-test' | |
- 'e2e-atomic-react-nextjs-test' | |
- 'e2e-iife-test' | |
- 'e2e-atomic-angular-test' | |
- 'e2e-atomic-vuejs-test' | |
- 'e2e-atomic-stencil-test' | |
- 'e2e-atomic-insight-panel-test' | |
- 'e2e-headless-ssr-test-app-dev' | |
- 'e2e-headless-ssr-test-app-prod' | |
- 'e2e-headless-ssr-test-pages-dev' | |
- 'e2e-headless-ssr-test-pages-prod' | |
runs-on: ubuntu-latest | |
steps: | |
- run: | | |
success="${{ !contains(needs.*.result, 'cancelled') && !contains(needs.*.result, 'failure')}}" | |
if [[ $success == "true" ]]; then | |
echo "Build is valid" | |
exit 0 | |
else | |
echo "Build is invalid" | |
exit 1 | |
fi | |
is-valid-merge-queue: | |
name: 'Confirm build is valid (merge group)' | |
if: ${{ always() && github.event_name == 'merge_group'}} | |
needs: | |
- 'build' | |
- 'lint-check' | |
- 'unit-test' | |
- 'playwright-atomic' | |
- 'playwright-atomic-hosted-page-test' | |
- 'e2e-atomic-test' | |
- 'e2e-atomic-screenshots' | |
- 'e2e-atomic-react-test' | |
- 'e2e-atomic-react-nextjs-test' | |
- 'e2e-iife-test' | |
- 'e2e-atomic-angular-test' | |
- 'e2e-atomic-vuejs-test' | |
- 'e2e-atomic-stencil-test' | |
- 'e2e-atomic-insight-panel-test' | |
- 'e2e-headless-ssr-test-app-dev' | |
- 'e2e-headless-ssr-test-app-prod' | |
- 'e2e-headless-ssr-test-pages-dev' | |
- 'e2e-headless-ssr-test-pages-prod' | |
runs-on: ubuntu-latest | |
steps: | |
- run: | | |
success="${{ !contains(needs.*.result, 'cancelled') && !contains(needs.*.result, 'failure')}}" | |
if [[ $success == "true" ]]; then | |
echo "Build is valid" | |
exit 0 | |
else | |
echo "Build is invalid" | |
exit 1 | |
fi | |
is-valid: | |
name: 'Confirm build is valid' | |
if: ${{ always() }} | |
needs: | |
- 'is-valid-pr' | |
- 'is-valid-merge-queue' | |
runs-on: ubuntu-latest | |
steps: | |
- run: | | |
success="${{ contains(needs.*.result, 'success')}}" | |
if [[ $success == "true" ]]; then | |
echo "Build is valid" | |
exit 0 | |
else | |
echo "Build is invalid" | |
exit 1 | |
fi |