build: update to v19 final (#30045) #4907
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' | |
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@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
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 | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Lint check' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
api_golden_checks: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Check API Goldens | |
run: yarn bazel test tools/public_api_guard/... | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'API Golden Checks' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
e2e: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run e2e tests | |
run: yarn e2e --flaky_test_attempts=2 | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'E2E test' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
integration: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run integration tests | |
run: yarn integration-tests | |
- name: Running size integration tests | |
run: yarn integration-tests:size-test | |
continue-on-error: true | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Integration test' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
linker_aot_tests: | |
runs-on: ubuntu-latest-4core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run linker AOT tests | |
run: yarn test-linker-aot | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Link AOT test' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
linker_jit_tests: | |
runs-on: ubuntu-latest-4core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run linker JIT tests | |
run: yarn test-linker-jit | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Link JIT test' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
test: | |
runs-on: ubuntu-latest-16core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run tests | |
run: bazel test --build_tag_filters=-e2e --test_tag_filters=-e2e --build_tests_only -- src/... | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Test' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
build: | |
runs-on: ubuntu-latest-16core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run tests | |
run: bazel build --build_tag_filters=-docs-package,-release-package -- src/... | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Build' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
publish_snapshots: | |
runs-on: ubuntu-latest-4core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Build and Verify Release Output | |
run: yarn build-and-check-release-output | |
- name: Verify tooling setup | |
run: yarn check-tooling-setup | |
- name: Build Docs Content | |
run: yarn build-docs-content | |
- name: Build Docs Content | |
run: yarn build-docs-content | |
- name: Publish Snapshots | |
run: ./scripts/circleci/publish-snapshots.sh | |
env: | |
SNAPSHOT_BUILDS_GITHUB_TOKEN: ${{ secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN }} | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Snapshot publishing' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
deploy_doc_site: | |
runs-on: ubuntu-latest-4core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Build and Verify Release Output | |
run: yarn build-and-check-release-output | |
- name: Verify tooling setup | |
run: yarn check-tooling-setup | |
- name: Deploy the docs app | |
run: yarn ci-push-deploy-docs-app | |
env: | |
CIRCLE_BRANCH: ${{ github.ref_name }} | |
CIRCLE_SHA1: ${{ github.sha }} | |
DOCS_SITE_GCP_SERVICE_KEY: ${{ secrets.DOCS_SITE_GCP_SERVICE_KEY }} | |
DOCS_DEPLOY_GITHUB_TOKEN: ${{ secrets.DOCS_DEPLOY_GITHUB_TOKEN }} | |
- uses: ./.github/actions/slack | |
if: failure() | |
with: | |
JOB_NAME: 'Docs site deployment' | |
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }} | |
saucelabs: | |
runs-on: ubuntu-latest | |
env: | |
KARMA_PARALLEL_BROWSERS: 2 | |
CI_NODE_INDEX: 0 | |
CI_NODE_TOTAL: 1 | |
CI_RUNNER_NUMBER: ${{ github.run_id }} | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Saucelabs Variables | |
uses: angular/dev-infra/github-actions/saucelabs@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Run tests on Saucelabs | |
run: ./scripts/circleci/run-saucelabs-tests.sh | |
browserstack: | |
runs-on: ubuntu-latest | |
env: | |
CI_NODE_INDEX: 0 | |
CI_NODE_TOTAL: 1 | |
CI_RUNNER_NUMBER: ${{ github.run_id }} | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
with: | |
cache-node-modules: true | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Setup Saucelabs Variables | |
uses: angular/dev-infra/github-actions/browserstack@89624a6442b75b5cda33c5e9b5c8c4f87ca4f13d | |
- name: Run tests on Browserstack | |
run: ./scripts/circleci/run-browserstack-tests.sh |