Skip to content

chore: move more release logic to gha #17088

chore: move more release logic to gha

chore: move more release logic to gha #17088

Workflow file for this run

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