diff --git a/.bazelrc b/.bazelrc
index 126ca0493e54..614512ec5faa 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -109,13 +109,6 @@ query --output=label_kind
# By default, failing tests don't print any output, it goes to the log file
test --test_output=errors
-
-################################
-# Settings for CircleCI #
-################################
-
-# Bazel flags for CircleCI are in /.circleci/bazel.rc
-
################################
# Remote Execution Setup #
################################
diff --git a/.circleci/bazel.common.rc b/.circleci/bazel.common.rc
deleted file mode 100644
index 1e8cad37a5ec..000000000000
--- a/.circleci/bazel.common.rc
+++ /dev/null
@@ -1,35 +0,0 @@
-# These options are enabled when running on CI
-# We do this by copying this file to /etc/bazel.bazelrc at the start of the build.
-
-# Echo all the configuration settings and their source
-build --announce_rc
-
-# Print extra information for build failures to help with debugging.
-build --verbose_failures
-
-# Show progress so CI doesn't appear to be stuck, but rate limit to avoid
-# spamming the log.
-build --show_progress_rate_limit 5
-
-# Improve the UI for rendering to a CI log.
-build --curses yes --color yes --terminal_columns 140 --show_timestamps
-
-# Workaround https://github.com/bazelbuild/bazel/issues/3645
-# Bazel doesn't calculate the memory ceiling correctly when running under Docker.
-# Limit Bazel to consuming resources that fit in CircleCI "xlarge" class
-# https://circleci.com/docs/2.0/configuration-reference/#resource_class
-build --local_cpu_resources=8
-build --local_ram_resources=14336
-
-# More details on failures
-build --verbose_failures=true
-
-# Retry in the event of flakes
-test --flaky_test_attempts=2
-
-# Run as many tests as possible so we capture all the failures.
-test --keep_going
-
-# Don't build targets not needed for tests. `build_test()` should be used if a
-# target should be verified as buildable on CI.
-test --build_tests_only
diff --git a/.circleci/bazel.linux.rc b/.circleci/bazel.linux.rc
deleted file mode 100644
index 6a4d30ed44f8..000000000000
--- a/.circleci/bazel.linux.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-# Import config items common to both Linux and Windows setups.
-# https://docs.bazel.build/versions/master/guide.html#bazelrc-syntax-and-semantics
-import %workspace%/.circleci/bazel.common.rc
-
-build --config=remote
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 9454be12fd03..000000000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-# This config is remaining in place to prevent pull requests failing because of CircleCI config missing.
-
-version: 2.1
-
-jobs:
- pass:
- docker:
- - image: cimg/base:2022.05
- steps:
- - run: echo "This too shall pass (always)"
-
-workflows:
- version: 2
- default_workflow:
- jobs:
- - pass
diff --git a/.circleci/env-helpers.inc.sh b/.circleci/env-helpers.inc.sh
deleted file mode 100644
index 5fa1263e112f..000000000000
--- a/.circleci/env-helpers.inc.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-####################################################################################################
-# Helpers for defining environment variables for CircleCI.
-#
-# In CircleCI, each step runs in a new shell. The way to share ENV variables across steps is to
-# export them from `$BASH_ENV`, which is automatically sourced at the beginning of every step (for
-# the default `bash` shell).
-#
-# See also https://circleci.com/docs/2.0/env-vars/#using-bash_env-to-set-environment-variables.
-####################################################################################################
-
-# Set and print an environment variable.
-#
-# Use this function for setting environment variables that are public, i.e. it is OK for them to be
-# visible to anyone through the CI logs.
-#
-# Usage: `setPublicVar `: The code to run to compute the value for the variable. Since this code should be
-# executed lazily, it must be properly escaped. For example:
-# ```sh
-# # DO NOT do this:
-# createPublicVarSetter MY_VAR "$(whoami)"; # `whoami` will be evaluated eagerly
-#
-# # DO this isntead:
-# createPublicVarSetter MY_VAR "\$(whoami)"; # `whoami` will NOT be evaluated eagerly
-# ```
-#
-# Usage: `createPublicVarSetter
`
-#
-# Example:
-# ```sh
-# createPublicVarSetter MY_VAR 'echo "FOO"';
-# echo $MY_VAR; # Not defined
-#
-# setPublicVar_MY_VAR;
-# source $BASH_ENV;
-# echo $MY_VAR; # FOO
-# ```
-function createPublicVarSetter() {
- echo "setPublicVar_$1() { setPublicVar $1 \"$2\"; }" >> $BASH_ENV;
-}
diff --git a/.circleci/env.sh b/.circleci/env.sh
deleted file mode 100755
index e6ae354a6a7c..000000000000
--- a/.circleci/env.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env bash
-
-# Variables
-readonly projectDir=$(realpath "$(dirname ${BASH_SOURCE[0]})/..")
-readonly envHelpersPath="$projectDir/.circleci/env-helpers.inc.sh";
-
-# Load helpers and make them available everywhere (through `$BASH_ENV`).
-source $envHelpersPath;
-echo "source $envHelpersPath;" >> $BASH_ENV;
-
-
-####################################################################################################
-# Define PUBLIC environment variables for CircleCI.
-####################################################################################################
-# See https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables for more info.
-####################################################################################################
-setPublicVar PROJECT_ROOT "$projectDir";
-setPublicVar NPM_CONFIG_PREFIX "${HOME}/.npm-global";
-setPublicVar PATH "${HOME}/.npm-global/bin:${PATH}";
-
-####################################################################################################
-# Define SauceLabs environment variables for CircleCI.
-####################################################################################################
-setPublicVar SAUCE_USERNAME "angular-tooling";
-setSecretVar SAUCE_ACCESS_KEY "e05dabf6fe0e-2c18-abf4-496d-1d010490";
-setPublicVar SAUCE_LOG_FILE /tmp/angular/sauce-connect.log
-setPublicVar SAUCE_READY_FILE /tmp/angular/sauce-connect-ready-file.lock
-setPublicVar SAUCE_PID_FILE /tmp/angular/sauce-connect-pid-file.lock
-setPublicVar SAUCE_TUNNEL_IDENTIFIER "angular-${CIRCLE_BUILD_NUM}-${CIRCLE_NODE_INDEX}"
-# Amount of seconds we wait for sauceconnect to establish a tunnel instance. In order to not
-# acquire CircleCI instances for too long if sauceconnect failed, we need a connect timeout.
-setPublicVar SAUCE_READY_FILE_TIMEOUT 120
-
-# Source `$BASH_ENV` to make the variables available immediately.
-source $BASH_ENV;
-
-# Disable husky.
-setPublicVar HUSKY 0
-
-# Expose the Bazelisk version. We need to run Bazelisk globally since Windows has problems launching
-# Bazel from a node modules directoy that might be modified by the Bazel Yarn install then.
-setPublicVar BAZELISK_VERSION \
- "$(cd ${PROJECT_ROOT}; node -p 'require("./package.json").devDependencies["@bazel/bazelisk"]')"
\ No newline at end of file
diff --git a/README.md b/README.md
index 4f04b0d9fdc6..d32f1fe07916 100644
--- a/README.md
+++ b/README.md
@@ -36,15 +36,6 @@