11name : Pull Request
22
33on :
4- pull_request :
4+ pull_request_target :
55 types : [opened, synchronize, reopened]
66
77concurrency :
@@ -15,59 +15,6 @@ defaults:
1515 shell : bash
1616
1717jobs :
18- analyze :
19- runs-on : ubuntu-latest
20- outputs :
21- snapshots : ${{ steps.filter.outputs.snapshots }}
22- steps :
23- - uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
24- with :
25- persist-credentials : false
26- - uses : dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
27- id : filter
28- with :
29- filters : |
30- snapshots:
31- - 'tests/e2e/ng-snapshot/package.json'
32-
33- lint :
34- runs-on : ubuntu-latest
35- steps :
36- - name : Initialize environment
37- uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
38- - name : Setup Bazel
39- uses : angular/dev-infra/github-actions/bazel/setup@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
40- - name : Setup ESLint Caching
41- uses : actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
42- with :
43- path : .eslintcache
44- key : ${{ runner.os }}-${{ hashFiles('.eslintrc.json') }}
45- - name : Install node modules
46- run : pnpm install --frozen-lockfile
47- - name : Generate JSON schema types
48- # Schema types are required to correctly lint the TypeScript code
49- run : pnpm run build-schema
50- - name : Run ESLint
51- run : pnpm lint --cache-strategy content
52- - name : Validate NgBot Configuration
53- run : pnpm ng-dev ngbot verify
54- - name : Validate Circular Dependencies
55- run : pnpm ts-circular-deps check
56- - name : Run Validation
57- run : pnpm admin validate
58- - name : Check tooling setup
59- run : pnpm check-tooling-setup
60- - name : Check commit message
61- # Commit message validation is only done on pull requests as its too late to validate once
62- # it has been merged.
63- run : pnpm ng-dev commit-message validate-range ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
64- - name : Check code format
65- # Code formatting checks are only done on pull requests as its too late to validate once
66- # it has been merged.
67- run : pnpm ng-dev format changed --check ${{ github.event.pull_request.base.sha }}
68- - name : Check Package Licenses
69- uses : angular/dev-infra/github-actions/linting/licenses@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
70-
7118 build :
7219 runs-on : ubuntu-latest
7320 steps :
@@ -88,30 +35,12 @@ jobs:
8835 path : dist/releases/*.tgz
8936 retention-days : 14
9037
91- test :
38+ test-saucelabs :
9239 needs : build
9340 runs-on : ubuntu-latest
94- steps :
95- - name : Initialize environment
96- uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
97- - name : Setup Bazel
98- uses : angular/dev-infra/github-actions/bazel/setup@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
99- - name : Setup Bazel RBE
100- uses : angular/dev-infra/github-actions/bazel/configure-remote@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
101- - name : Install node modules
102- run : pnpm install --frozen-lockfile
103- - name : Run module and package tests
104- run : pnpm bazel test -- //... -//tests/...
105-
106- e2e :
107- needs : build
108- strategy :
109- fail-fast : false
110- matrix :
111- node : [22]
112- subset : [esbuild, webpack]
113- shard : [0, 1, 2, 3, 4, 5]
114- runs-on : ubuntu-latest
41+ name : Browser Compatibility Tests
42+ env :
43+ SAUCE_TUNNEL_IDENTIFIER : ' angular-${{ github.run_number }}'
11544 steps :
11645 - name : Initialize environment
11746 uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
@@ -121,96 +50,16 @@ jobs:
12150 uses : angular/dev-infra/github-actions/bazel/setup@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
12251 - name : Setup Bazel RBE
12352 uses : angular/dev-infra/github-actions/bazel/configure-remote@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
124- - name : Run CLI E2E tests
125- run : pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests:e2e.${{ matrix.subset }}_node${{ matrix.node }}
126-
127- build-e2e-windows-subset :
128- runs-on : ubuntu-latest
129- steps :
130- - name : Initialize environment
131- uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
132- - name : Setup Bazel
133- uses : angular/dev-infra/github-actions/bazel/setup@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
134- - name : Setup Bazel RBE
135- uses : angular/dev-infra/github-actions/bazel/configure-remote@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
136- - name : Install node modules
137- run : pnpm install --frozen-lockfile
138- - name : Build E2E tests for Windows on Linux
139- run : |
140- pnpm bazel build \
141- --config=e2e \
142- //tests:e2e.esbuild_node24 \
143- --platforms=tools:windows_x64
144- - name : Store built Windows E2E tests
145- uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
146- with :
147- name : win-e2e-build-artifacts
148- path : |
149- dist/bin/tests/**
150- !**/node_modules/**
151- retention-days : 1
152- if-no-files-found : ' error'
153-
154- e2e-windows-subset :
155- needs : build-e2e-windows-subset
156- runs-on : windows-2025
157- steps :
158- - name : Initialize environment
159- uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
160- - name : Install node modules
161- run : pnpm install --frozen-lockfile
162- - name : Download built Windows E2E tests
163- uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
164- with :
165- name : win-e2e-build-artifacts
166- path : dist/bin/tests/
167- - name : Run CLI E2E tests
168- uses : ./.github/shared-actions/windows-bazel-test
53+ - name : Start Sauce Connect
54+ uses : saucelabs/sauce-connect-action@cb88b508c6f9ff4d84490093733315dbd55de022 # v3
55+ timeout-minutes : 10
16956 with :
170- test_target_name : e2e.esbuild_node24
57+ username : ${{ vars.SAUCE_USERNAME }}
58+ accessKey : ${{ secrets.SAUCE_ACCESS_KEY }}
59+ region : us-west-1
60+ tunnelName : ${{ env.SAUCE_TUNNEL_IDENTIFIER }}
61+ - name : Run E2E Browser tests
17162 env :
172- E2E_SHARD_TOTAL : 1
173- TESTBRIDGE_TEST_ONLY : tests/basic/{build,rebuild,serve}.ts
174-
175- e2e-package-managers :
176- needs : build
177- strategy :
178- fail-fast : false
179- matrix :
180- node : [22]
181- subset : [yarn, pnpm, bun]
182- shard : [0, 1, 2]
183- runs-on : ubuntu-latest
184- steps :
185- - name : Initialize environment
186- uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
187- - name : Install node modules
188- run : pnpm install --frozen-lockfile
189- - name : Setup Bazel
190- uses : angular/dev-infra/github-actions/bazel/setup@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
191- - name : Setup Bazel RBE
192- uses : angular/dev-infra/github-actions/bazel/configure-remote@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
193- - name : Run CLI E2E tests
194- run : pnpm bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests:e2e.${{ matrix.subset }}_node${{ matrix.node }}
195-
196- e2e-snapshots :
197- needs : [analyze, build]
198- if : needs.analyze.outputs.snapshots == 'true'
199- strategy :
200- fail-fast : false
201- matrix :
202- node : [22]
203- subset : [esbuild, webpack]
204- shard : [0, 1, 2, 3, 4, 5]
205- runs-on : ubuntu-latest
206- steps :
207- - name : Initialize environment
208- uses : angular/dev-infra/github-actions/npm/checkout-and-setup-node@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
209- - name : Install node modules
210- run : pnpm install --frozen-lockfile
211- - name : Setup Bazel
212- uses : angular/dev-infra/github-actions/bazel/setup@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
213- - name : Setup Bazel RBE
214- uses : angular/dev-infra/github-actions/bazel/configure-remote@24ba9709ca4bf6548bba6a9abfe2799e90645a60 # main
215- - name : Run CLI E2E tests
216- run : pnpm bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }}
63+ SAUCE_USERNAME : ${{ vars.SAUCE_USERNAME }}
64+ SAUCE_ACCESS_KEY : ${{ secrets.SAUCE_ACCESS_KEY }}
65+ run : pnpm bazel test --config=saucelabs //tests:e2e.saucelabs
0 commit comments