Create a new pull request by comparing changes across two branches #23
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: 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 |