ci: migrate saucelabs and browserstack tests to GHA (#27886) #7
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' | |
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@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
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_golden_checks: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- 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@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run e2e tests | |
run: yarn e2e --flaky_test_attempts=2 | |
integration: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- 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 | |
- name: Notify about failed integration size-test | |
if: ${{ failure() && github.event_name == 'push'}} | |
uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v=v1.24.0 | |
with: | |
channel-id: 'C015EBF2XB6' | |
slack-message: 'Integration testing job failed for ${{ github.base_ref }} branch failed on build ${{ github.event.after }}: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' | |
env: | |
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@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run linker AOT tests | |
run: yarn test-linker-aot | |
linker_jit_tests: | |
runs-on: ubuntu-latest-4core | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@fb30926790c6225d553b91a4818cab2fdde4fb4e | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Run linker JIT tests | |
run: yarn test-linker-jit |