WIP #2
Workflow file for this run
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: | |
push: | |
branches: | |
- main | |
- '[0-9]+.[0-9]+.x' | |
- 'migrate-*' | |
pull_request: | |
types: [opened, synchronize, reopened] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: {} | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@852c3d1898775ec9fbc87213e519f16e78805b57 | |
with: | |
cache-node-modules: true | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Checking package externals | |
run: | | |
bazel build //:package_externals | |
yarn check-package-externals $(bazel info bazel-bin)/package_externals.json | |
- name: Checking entry-points configuration | |
run: | | |
bazel build //:entry_points_manifest | |
yarn check-entry-point-setup $(bazel info bazel-bin)/entry_points_manifest.json | |
- name: Check OWNERS file | |
run: yarn ownerslint | |
- name: Check for component id collisions | |
run: yarn detect-component-id-collisions | |
- name: Check style lint | |
run: yarn stylelint | |
- name: Check code lint | |
run: yarn tslint | |
- name: Check for circular dependencies | |
run: yarn -s ts-circular-deps:check | |
- name: Check commit message | |
# Commit message validation is only done on pull requests as its too late to validate once | |
# it has been merged. | |
if: github.event_name == 'pull_request' | |
run: yarn ng-dev commit-message validate-range ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | |
- name: Check code format | |
# Code formatting checks are only done on pull requests as its too late to validate once | |
# it has been merged. | |
if: github.event_name == 'pull_request' | |
run: yarn ng-dev format changed --check ${{ github.event.pull_request.base.sha }} | |
api_goldens: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Check API Goldens | |
run: yarn bazel test tools/public_api_guard/... | |
e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run e2e tests | |
run: yarn e2e --flaky_test_attempts=2 | |
browsers: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run unit tests in browsers | |
run: yarn bazel test --build_tag_filters=-e2e --test_tag_filters=-e2e --build_tests_only -- src/... | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Build everything | |
# Exclude release and docs packages here as those will be built within | |
# the "build_release_packages" and "publish_snapshots" jobs. | |
run: yarn bazel build --build_tag_filters=-docs-package,-release-package -- src/... | |
integration: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run integration tests | |
run: yarn integration-tests\ | |
# TODO: Set up slack notifications | |
# - name: Running size integration tests (failures are reported in Slack only). | |
# run: | | |
# If the size integration tests fail, report the failure to a dedicated #components-ci-size-tracking Slack channel. | |
# yarn integration-tests:size-test || yarn ci-notify-slack-failure components-ci-size-tracking | |
browserstack: | |
runs-on: ubuntu-latest | |
env: | |
BROWSER_STACK_USERNAME: ${{ vars.BROWSER_STACK_USERNAME }} | |
BROWSER_STACK_ACCESS_KEY: ${{ secrets.BROWSER_STACK_ACCESS_KEY }} | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run tests in browserstack | |
run: ./scripts/circleci/run-browserstack-tests.sh | |
saucelabs: | |
runs-on: ubuntu-latest | |
env: | |
SAUCE_USERNAME: ${{ vars.SAUCE_USERNAME }} | |
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }} | |
# Note: This number should not be too high because otherwise we might run into | |
# a rate limit exception. | |
KARMA_PARALLEL_BROWSERS: 2 | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run tests in saucelabs | |
run: ./scripts/circleci/run-saucelabs-tests.sh | |
linker_aot: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run linker tests in AOT | |
run: yarn test-linker-aot | |
linker_jit: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@45de46d9ba0e0689b7a846fd31ec9e241807ca71 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run linker tests in JIT | |
run: yarn test-linker-jit |