mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
As part of the CircleCI migration it looks like we started running the Bazel saucelabs job for all pull requests. This was not done before because we weren't confident with the stability of this job yet. This commit moves it back so that we don't block pull requests with a job that is not considered stable.
64 lines
3.1 KiB
YAML
64 lines
3.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions: {}
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
saucelabs:
|
|
runs-on: ubuntu-latest-4core
|
|
env:
|
|
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }}
|
|
SAUCE_USERNAME: ${{ vars.SAUCE_USERNAME }}
|
|
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
|
|
steps:
|
|
- name: Initialize environment
|
|
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@031962443584a0ac5cbd9d1c1b78b241453e4702
|
|
with:
|
|
cache-node-modules: true
|
|
# Checking out the pull request commit is intended here as we need to run the changed code tests.
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
- name: Install node modules
|
|
run: yarn install --frozen-lockfile
|
|
- name: Setup Bazel
|
|
uses: angular/dev-infra/github-actions/bazel/setup@031962443584a0ac5cbd9d1c1b78b241453e4702
|
|
- name: Starting Saucelabs tunnel service
|
|
run: ./tools/saucelabs/sauce-service.sh run &
|
|
# Build test fixtures for a test that rely on Bazel-generated fixtures. Note that disabling
|
|
# specific tests which are reliant on such generated fixtures is not an option as SystemJS
|
|
# in the Saucelabs legacy job always fetches referenced files, even if the imports would be
|
|
# guarded by an check to skip in the Saucelabs legacy job. We should be good running such
|
|
# test in all supported browsers on Saucelabs anyway until this job can be removed.
|
|
- name: Preparing Bazel-generated fixtures required in legacy tests
|
|
run: |
|
|
yarn bazel build //packages/core/test:downleveled_es5_fixture //packages/common/locales
|
|
# Needed for the ES5 downlevel reflector test in `packages/core/test/reflection`.
|
|
mkdir -p dist/legacy-test-out/core/test/reflection/
|
|
cp dist/bin/packages/core/test/reflection/es5_downleveled_inheritance_fixture.js \
|
|
dist/legacy-test-out/core/test/reflection/es5_downleveled_inheritance_fixture.js
|
|
# Locale files are needed for i18n tests running within Saucelabs. These are added
|
|
# directly as sources so that the TypeScript compilation of `/packages/tsconfig.json`
|
|
# can succeed. Note that the base locale and currencies files are checked-in, so
|
|
# we do not need to re-generate those through Bazel.
|
|
mkdir -p packages/common/locales/extra
|
|
cp dist/bin/packages/common/locales/*.ts packages/common/locales
|
|
cp dist/bin/packages/common/locales/extra/*.ts packages/common/locales/extra
|
|
- name: Build bundle of tests to run on Saucelabs
|
|
run: node tools/legacy-saucelabs/build-saucelabs-test-bundle.mjs
|
|
- name: Wait and confirm Saucelabs tunnel has connected
|
|
run: ./tools/saucelabs/sauce-service.sh ready-wait
|
|
timeout-minutes: 3
|
|
- name: Running tests on Saucelabs.
|
|
run: KARMA_WEB_TEST_MODE=SL_REQUIRED yarn karma start ./karma-js.conf.js --single-run
|
|
- name: Stop Saucelabs tunnel service
|
|
run: ./tools/saucelabs/sauce-service.sh stop
|