chore: move more release logic to gha #17088
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: | |
jobs: | |
report-size: | |
if: github.event_name == 'pull_request' | |
name: 'Report bundle size' | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_CREDENTIALS: ${{ secrets.GITHUB_TOKEN }} | |
NODE_OPTIONS: --max_old_space_size=4096 | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- uses: ./.github/actions/setup | |
- run: npm test | |
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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-stencil | |
e2e-atomic-hosted-page-test: | |
name: 'Run e2e tests for Atomic Hosted Page' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
- uses: ./.github/actions/setup | |
- uses: ./.github/actions/e2e-atomic-hosted-page | |
e2e-atomic-insight-panel-test: | |
name: 'Run e2e tests on Atomic insight panel' | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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 }} | |
required-jobs: | |
if: | | |
${{ | |
!cancelled () && | |
!contains(needs.*.result, 'failure') | |
}} | |
needs: | |
- 'build' | |
- 'lint-check' | |
- 'unit-test' | |
- 'e2e-atomic-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-hosted-page-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: echo 'All required jobs have passed' | |
is-valid: | |
if: | | |
${{ | |
!cancelled () && | |
!contains(needs.*.result, 'failure') | |
}} | |
name: 'Confirm build is valid' | |
needs: | |
- 'required-jobs' | |
runs-on: ubuntu-latest | |
steps: | |
- run: | | |
success="${{ needs.required-jobs.result == 'success' }}" | |
if [[ $success == "true" ]]; then | |
echo "Build is valid" | |
exit 0 | |
else | |
echo "Build is invalid" | |
exit 1 | |
fi |