Migrate TCMalloc CI to use the new lightweight docker setup and latest gcc.

This shaves ~30s off the noop run time of the total test suite for downloading the previously 1GB image (now ~100 MB).  It also restores the old test coverage off the latest gcc, rather than gcc 14.

PiperOrigin-RevId: 949797683
This commit is contained in:
Mike Kruskal authored and Copybara-Service committed 2026-07-17 15:47:34 -07:00
1 parent f06e5287ae
commit d56997d6d6
6 files changed
+72 -15

No files matched your search

+5 -9
View File
@@ -45,15 +45,11 @@ build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan
# TODO(b/530366451) Replace these with a proper toolchain setup
build:libstdc++ --repo_env=BAZEL_CXXOPTS= --repo_env=BAZEL_LINKOPTS= --repo_env=CPLUS_INCLUDE_PATH=
build:libstdc++ --action_env=BAZEL_CXXOPTS= --action_env=BAZEL_LINKOPTS= --action_env=CPLUS_INCLUDE_PATH=
build:libstdc++ --host_action_env=BAZEL_CXXOPTS= --host_action_env=BAZEL_LINKOPTS= --host_action_env=CPLUS_INCLUDE_PATH=
# TODO(b/530366451) This uses gcc 14, replace with a more recent version.
build:gcc --config=libstdc++
build:gcc --host_action_env=CC=/usr/local/bin/gcc --action_env=CC=/usr/bin/gcc
build:gcc --host_action_env=CXX=/usr/local/bin/g++ --action_env=CXX=/usr/bin/g++
# Configure our Docker toolchain setup.
build --extra_toolchains=@docker_toolchain//:all
build:libstdc++ --features=libstdc++
build:gcc --platforms=//ci:linux_gcc
build:clang --platforms=//ci:linux_clang
# Remote build configuration for CI.
build:remote-base --define=EXECUTOR=remote
+1 -1
View File
@@ -45,7 +45,7 @@ jobs:
runs-on: ubuntu-24.04
name: Linux ${{ matrix.toolchain }} ${{ matrix.compilation_mode }} ${{ matrix.exceptions }} Bazel
container:
image: gcr.io/google.com/absl-177019/gloop-linux-latest@sha256:903f3d7733dd615bc1542b548fab4b649cf6e48118251a2c6527ce4e30543c6b
image: gcr.io/google.com/absl-177019/gloop-linux-toolchain-latest@sha256:a820c79d3f356a64db121a4ee16c4408df18f9d2c8bf6c6abfae21666ac003ba
options: --cap-add=SYS_PTRACE
credentials:
# TODO(b/530366451) Switch to Workload Identity Federation to avoid the need for secrets and
+6
View File
@@ -38,3 +38,9 @@ bazel_dep(
version = "20260708.rc1",
repo_name = "do_not_use_for_gloop_visibility_only",
)
bazel_dep(name = "docker_toolchain", version = "0.1", dev_dependency = True)
local_path_override(
module_name = "docker_toolchain",
path = "ci/docker_toolchain",
)
+20 -5
View File
@@ -1,7 +1,4 @@
package(
default_applicable_licenses = ["//tcmalloc:license"],
default_visibility = ["//visibility:private"],
)
package(default_visibility = ["//visibility:private"])
platform(
name = "rbe",
@@ -10,9 +7,27 @@ platform(
"@platforms//cpu:x86_64",
],
exec_properties = {
"container-image": "docker://gcr.io/google.com/absl-177019/gloop-linux-latest@sha256:903f3d7733dd615bc1542b548fab4b649cf6e48118251a2c6527ce4e30543c6b",
"container-image": "docker://gcr.io/google.com/absl-177019/gloop-linux-latest@sha256:e199623ad0b61b30d240e8bbddf473f65cb1a11da09462001d83b5066dbd9e98",
"OSArch": "amd64",
"dockerRunAsRoot": "true",
"cache-silo-key": "n2-highmem-8-2026-07-07",
},
)
platform(
name = "linux_gcc",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
"@bazel_tools//tools/cpp:gcc",
],
)
platform(
name = "linux_clang",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
"@bazel_tools//tools/cpp:clang",
],
)
+21
View File
@@ -0,0 +1,21 @@
# Copyright 2026 The TCMalloc Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Standalone fallback toolchain module when building outside the Docker container.
# Inside the container, this module is overridden via /etc/bazel.bazelrc to point to an actual
# toolchain.
package(default_visibility = ["//visibility:public"])
filegroup(name = "empty")
+19
View File
@@ -0,0 +1,19 @@
# Copyright 2026 The TCMalloc Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module(
name = "docker_toolchain",
version = "0.1",
)