Skip to content

Commit f84e8dd

Browse files
committed
ci: disable bazel-saucelabs job (angular#58162)
Disables the `bazel-saucelabs` job in `main`, and re-uses the PR legacy saucelabs job to run on `main` instead (which is much more stable and reliable). PR Close angular#58162
1 parent a59dbb7 commit f84e8dd

File tree

4 files changed

+84
-51
lines changed

4 files changed

+84
-51
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: 'Saucelabs legacy test job'
2+
description: 'Runs tests against Saucelabs (outside of Bazel)'
3+
4+
runs:
5+
using: 'composite'
6+
steps:
7+
- name: Setup Bazel
8+
uses: angular/dev-infra/github-actions/bazel/setup@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
9+
- name: Setup Saucelabs Variables
10+
uses: angular/dev-infra/github-actions/saucelabs@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
11+
- name: Starting Saucelabs tunnel service
12+
shell: bash
13+
run: ./tools/saucelabs/sauce-service.sh run &
14+
# Build test fixtures for a test that rely on Bazel-generated fixtures. Note that disabling
15+
# specific tests which are reliant on such generated fixtures is not an option as SystemJS
16+
# in the Saucelabs legacy job always fetches referenced files, even if the imports would be
17+
# guarded by an check to skip in the Saucelabs legacy job. We should be good running such
18+
# test in all supported browsers on Saucelabs anyway until this job can be removed.
19+
- name: Preparing Bazel-generated fixtures required in legacy tests
20+
shell: bash
21+
run: |
22+
yarn bazel build //packages/core/test:downleveled_es5_fixture //packages/common/locales
23+
# Needed for the ES5 downlevel reflector test in `packages/core/test/reflection`.
24+
mkdir -p dist/legacy-test-out/core/test/reflection/
25+
cp dist/bin/packages/core/test/reflection/es5_downleveled_inheritance_fixture.js \
26+
dist/legacy-test-out/core/test/reflection/es5_downleveled_inheritance_fixture.js
27+
# Locale files are needed for i18n tests running within Saucelabs. These are added
28+
# directly as sources so that the TypeScript compilation of `/packages/tsconfig.json`
29+
# can succeed. Note that the base locale and currencies files are checked-in, so
30+
# we do not need to re-generate those through Bazel.
31+
mkdir -p packages/common/locales/extra
32+
cp dist/bin/packages/common/locales/*.ts packages/common/locales
33+
cp dist/bin/packages/common/locales/extra/*.ts packages/common/locales/extra
34+
- name: Build bundle of tests to run on Saucelabs
35+
shell: bash
36+
run: node tools/legacy-saucelabs/build-saucelabs-test-bundle.mjs
37+
- name: Wait and confirm Saucelabs tunnel has connected
38+
shell: bash
39+
run: ./tools/saucelabs/sauce-service.sh ready-wait
40+
- name: Running tests on Saucelabs.
41+
shell: bash
42+
run: KARMA_WEB_TEST_MODE=SL_REQUIRED yarn karma start ./karma-js.conf.js --single-run
43+
- name: Stop Saucelabs tunnel service
44+
shell: bash
45+
run: ./tools/saucelabs/sauce-service.sh stop

.github/workflows/ci.yml

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: CI
1+
name: CI (push)
22

33
on:
44
push:
@@ -152,31 +152,18 @@ jobs:
152152
- run: yarn --cwd packages/zone.js/test/typings install --frozen-lockfile --non-interactive
153153
- run: yarn --cwd packages/zone.js/test/typings test
154154

155-
bazel-saucelabs:
155+
saucelabs:
156156
runs-on: ubuntu-latest-4core
157157
env:
158-
JOBS: 2
158+
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }}
159159
steps:
160160
- name: Initialize environment
161161
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
162162
with:
163163
cache-node-modules: true
164164
- name: Install node modules
165165
run: yarn install --frozen-lockfile
166-
- name: Setup Bazel
167-
uses: angular/dev-infra/github-actions/bazel/setup@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
168-
- name: Setup Bazel Remote Caching
169-
uses: angular/dev-infra/github-actions/bazel/configure-remote@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
170-
- name: Setup Saucelabs Variables
171-
uses: angular/dev-infra/github-actions/saucelabs@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
172-
- name: Set up Sauce Tunnel Daemon
173-
run: yarn bazel run //tools/saucelabs-daemon/background-service -- $JOBS &
174-
env:
175-
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }}
176-
- name: Run all saucelabs bazel tests
177-
run: |
178-
TESTS=$(./node_modules/.bin/bazelisk query --output label '(kind(karma_web_test, ...) intersect attr("tags", "saucelabs", ...)) except attr("tags", "fixme-saucelabs", ...)')
179-
yarn bazel test --config=saucelabs --jobs=$JOBS ${TESTS}
166+
- uses: ./.github/actions/saucelabs-legacy
180167

181168
adev-deploy:
182169
needs: [adev]

.github/workflows/manual.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Manual jobs
2+
3+
on:
4+
workflow_dispatch:
5+
inputs: {}
6+
7+
jobs:
8+
# Bazel saucelabs job resides in `manual.yml` because it's currently unstable, but
9+
# kept as "runnable" for debugging/stabilization effort purposes.
10+
bazel-saucelabs:
11+
runs-on: ubuntu-latest-4core
12+
env:
13+
JOBS: 2
14+
steps:
15+
- name: Initialize environment
16+
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
17+
with:
18+
cache-node-modules: true
19+
- name: Install node modules
20+
run: yarn install --frozen-lockfile
21+
- name: Setup Bazel
22+
uses: angular/dev-infra/github-actions/bazel/setup@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
23+
- name: Setup Bazel Remote Caching
24+
uses: angular/dev-infra/github-actions/bazel/configure-remote@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
25+
- name: Setup Saucelabs Variables
26+
uses: angular/dev-infra/github-actions/saucelabs@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
27+
- name: Set up Sauce Tunnel Daemon
28+
run: yarn bazel run //tools/saucelabs-daemon/background-service -- $JOBS &
29+
env:
30+
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }}
31+
- name: Run all saucelabs bazel tests
32+
run: |
33+
TESTS=$(./node_modules/.bin/bazelisk query --output label '(kind(karma_web_test, ...) intersect attr("tags", "saucelabs", ...)) except attr("tags", "fixme-saucelabs", ...)')
34+
yarn bazel test --config=saucelabs --jobs=$JOBS ${TESTS}

.github/workflows/pr.yml

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -174,37 +174,4 @@ jobs:
174174
cache-node-modules: true
175175
- name: Install node modules
176176
run: yarn install --frozen-lockfile
177-
- name: Setup Bazel
178-
uses: angular/dev-infra/github-actions/bazel/setup@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
179-
- name: Setup Saucelabs Variables
180-
uses: angular/dev-infra/github-actions/saucelabs@8d3cb7b9e1b3edd1dc168376689d27407d2dfa7a
181-
- name: Starting Saucelabs tunnel service
182-
run: ./tools/saucelabs/sauce-service.sh run &
183-
# Build test fixtures for a test that rely on Bazel-generated fixtures. Note that disabling
184-
# specific tests which are reliant on such generated fixtures is not an option as SystemJS
185-
# in the Saucelabs legacy job always fetches referenced files, even if the imports would be
186-
# guarded by an check to skip in the Saucelabs legacy job. We should be good running such
187-
# test in all supported browsers on Saucelabs anyway until this job can be removed.
188-
- name: Preparing Bazel-generated fixtures required in legacy tests
189-
run: |
190-
yarn bazel build //packages/core/test:downleveled_es5_fixture //packages/common/locales
191-
# Needed for the ES5 downlevel reflector test in `packages/core/test/reflection`.
192-
mkdir -p dist/legacy-test-out/core/test/reflection/
193-
cp dist/bin/packages/core/test/reflection/es5_downleveled_inheritance_fixture.js \
194-
dist/legacy-test-out/core/test/reflection/es5_downleveled_inheritance_fixture.js
195-
# Locale files are needed for i18n tests running within Saucelabs. These are added
196-
# directly as sources so that the TypeScript compilation of `/packages/tsconfig.json`
197-
# can succeed. Note that the base locale and currencies files are checked-in, so
198-
# we do not need to re-generate those through Bazel.
199-
mkdir -p packages/common/locales/extra
200-
cp dist/bin/packages/common/locales/*.ts packages/common/locales
201-
cp dist/bin/packages/common/locales/extra/*.ts packages/common/locales/extra
202-
- name: Build bundle of tests to run on Saucelabs
203-
run: node tools/legacy-saucelabs/build-saucelabs-test-bundle.mjs
204-
- name: Wait and confirm Saucelabs tunnel has connected
205-
run: ./tools/saucelabs/sauce-service.sh ready-wait
206-
timeout-minutes: 3
207-
- name: Running tests on Saucelabs.
208-
run: KARMA_WEB_TEST_MODE=SL_REQUIRED yarn karma start ./karma-js.conf.js --single-run
209-
- name: Stop Saucelabs tunnel service
210-
run: ./tools/saucelabs/sauce-service.sh stop
177+
- uses: ./.github/actions/saucelabs-legacy

0 commit comments

Comments
 (0)