Skip to content

fix(cdk/scrolling): fix virtual scrolling jankiness with run coalescing #3827

fix(cdk/scrolling): fix virtual scrolling jankiness with run coalescing

fix(cdk/scrolling): fix virtual scrolling jankiness with run coalescing #3827

Workflow file for this run

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@804107deac3621184db54fab3e7cfe7f735a0d74
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 }}
- uses: ./.github/actions/slack
if: ${{ failure() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
with:
JOB_NAME: 'Test'
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }}
build:
runs-on: ubuntu-latest-4core
steps:
- name: Initialize environment
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
with:
JOB_NAME: 'Build'
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }}
publish_snapshots:
if: ${{ github.event_name == 'push'}}
runs-on: ubuntu-latest-4core
steps:
- name: Initialize environment
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
with:
JOB_NAME: 'Snapshot publishing'
SLACK_BOT_TOKEN: ${{ secrets.ANGULAR_ROBOT_SLACK_TOKEN }}
upload_package_artifacts:
if: ${{ github.event_name != 'push'}}
runs-on: ubuntu-latest-4core
steps:
- name: Initialize environment
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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 and create package artifacts
run: ./scripts/create-package-archives.js --suffix "pr${{github.event.number}}-$(git rev-parse --short HEAD)"
- name: Upload artifacts
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # tag=v4.3.1
with:
name: Package Artifacts
path: dist/release-archives
deploy_doc_site:
if: ${{ github.event_name == 'push'}}
runs-on: ubuntu-latest-4core
steps:
- name: Initialize environment
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@804107deac3621184db54fab3e7cfe7f735a0d74
with:
cache-node-modules: true
- name: Setup Bazel
uses: angular/dev-infra/github-actions/bazel/setup@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Bazel RBE
uses: angular/dev-infra/github-actions/bazel/configure-remote@804107deac3621184db54fab3e7cfe7f735a0d74
- 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() && github.event_name == 'push' }}
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@804107deac3621184db54fab3e7cfe7f735a0d74
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@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Saucelabs Variables
uses: angular/dev-infra/github-actions/saucelabs@804107deac3621184db54fab3e7cfe7f735a0d74
- 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@804107deac3621184db54fab3e7cfe7f735a0d74
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@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Setup Saucelabs Variables
uses: angular/dev-infra/github-actions/browserstack@804107deac3621184db54fab3e7cfe7f735a0d74
- name: Run tests on Browserstack
run: ./scripts/circleci/run-browserstack-tests.sh