Add new constraint and toolchain for docker support. (#235)
* Add new constraint and toolchain for docker support.
https://github.com/bazelbuild/continuous-integration/issues/376
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index 7a5d974..b0eb595 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -24,6 +24,7 @@
test_flags:
- "--test_output=errors"
- "--verbose_failures"
+ - "--extra_toolchains=@bazel_toolchains//configs/ubuntu16_04_clang/latest:toolchain_docker"
- "--extra_execution_platforms=@bazel_toolchains//configs/ubuntu16_04_clang/1.1:nosla_xenial_docker"
- "--host_platform=@bazel_toolchains//configs/ubuntu16_04_clang/1.1:nosla_xenial_docker"
- "--platforms=@bazel_toolchains//configs/ubuntu16_04_clang/1.1:nosla_xenial_docker"
diff --git a/configs/debian8_clang/latest/BUILD b/configs/debian8_clang/latest/BUILD
index 65136ac..217fd7c 100644
--- a/configs/debian8_clang/latest/BUILD
+++ b/configs/debian8_clang/latest/BUILD
@@ -52,3 +52,21 @@
name = "javabase",
actual = PACKAGE + LATEST_CONFIG_VERSION + ":jdk8",
)
+
+# For internal testing purpose only.
+toolchain(
+ name = "toolchain_docker",
+ exec_compatible_with = [
+ "@bazel_tools//platforms:linux",
+ "@bazel_tools//platforms:x86_64",
+ "@bazel_tools//tools/cpp:clang",
+ "//constraints:support_docker",
+ "//constraints:jessie",
+ ],
+ target_compatible_with = [
+ "@bazel_tools//platforms:linux",
+ "@bazel_tools//platforms:x86_64",
+ ],
+ toolchain = PACKAGE + LATEST_CONFIG_VERSION + "/bazel_" + LATEST_BAZEL_VERSION + "/default:cc-compiler-k8",
+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)
diff --git a/configs/ubuntu16_04_clang/1.0/BUILD b/configs/ubuntu16_04_clang/1.0/BUILD
index 2ef1365..9d2a98b 100644
--- a/configs/ubuntu16_04_clang/1.0/BUILD
+++ b/configs/ubuntu16_04_clang/1.0/BUILD
@@ -146,6 +146,7 @@
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:clang",
+ "//constraints:support_docker",
"//constraints:xenial",
"//constraints/sanitizers:support_msan",
],
diff --git a/configs/ubuntu16_04_clang/1.1/BUILD b/configs/ubuntu16_04_clang/1.1/BUILD
index 32e4108..55c9048 100644
--- a/configs/ubuntu16_04_clang/1.1/BUILD
+++ b/configs/ubuntu16_04_clang/1.1/BUILD
@@ -127,6 +127,7 @@
"@bazel_tools//platforms:x86_64",
"@bazel_tools//platforms:linux",
"@bazel_tools//tools/cpp:clang",
+ "//constraints:support_docker",
"//constraints:xenial",
"//constraints/sanitizers:support_msan",
],
diff --git a/configs/ubuntu16_04_clang/latest/BUILD b/configs/ubuntu16_04_clang/latest/BUILD
index 87159e1..328af0d 100644
--- a/configs/ubuntu16_04_clang/latest/BUILD
+++ b/configs/ubuntu16_04_clang/latest/BUILD
@@ -52,3 +52,21 @@
name = "javabase",
actual = PACKAGE + LATEST_CONFIG_VERSION + ":jdk8",
)
+
+# For internal testing purpose only.
+toolchain(
+ name = "toolchain_docker",
+ exec_compatible_with = [
+ "@bazel_tools//platforms:linux",
+ "@bazel_tools//platforms:x86_64",
+ "@bazel_tools//tools/cpp:clang",
+ "//constraints:support_docker",
+ "//constraints:xenial",
+ ],
+ target_compatible_with = [
+ "@bazel_tools//platforms:linux",
+ "@bazel_tools//platforms:x86_64",
+ ],
+ toolchain = PACKAGE + LATEST_CONFIG_VERSION + "/bazel_" + LATEST_BAZEL_VERSION + "/default:cc-compiler-k8",
+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)
diff --git a/constraints/BUILD b/constraints/BUILD
index 5df2572..0c22966 100644
--- a/constraints/BUILD
+++ b/constraints/BUILD
@@ -28,3 +28,12 @@
name = "xenial",
constraint_setting = ":linux_distribution",
)
+
+# Constraints used to configure docker.
+
+constraint_setting(name = "docker")
+
+constraint_value(
+ name = "support_docker",
+ constraint_setting = ":docker",
+)
diff --git a/release/cc/create_artifacts.py b/release/cc/create_artifacts.py
index ddf0e2f..d7063e4 100644
--- a/release/cc/create_artifacts.py
+++ b/release/cc/create_artifacts.py
@@ -107,6 +107,9 @@
"""
for container_configs in container_configs_list:
+
+ constraints = container_configs.constraints
+
with open(container_configs.get_latest_aliases_build_path(),
"w") as build_file:
# Update the BUILD file with aliases for latest toolchain targets.
@@ -119,6 +122,8 @@
CONFIG_TYPES=", ".join(
[("\"%s\"" % config_type)
for config_type in container_configs.config_types]),
+ EXTRA_CONSTRAINTS="\n".join(
+ [("\"%s\"," % constraint) for constraint in constraints])
)
build_file.write(tpl)
diff --git a/release/cc/latest.tpl b/release/cc/latest.tpl
index c3c0e87..fb9a823 100644
--- a/release/cc/latest.tpl
+++ b/release/cc/latest.tpl
@@ -49,3 +49,21 @@
name = "javabase",
actual = PACKAGE + LATEST_CONFIG_VERSION + ":jdk8",
)
+
+# For internal testing purpose only.
+toolchain(
+ name = "toolchain_docker",
+ exec_compatible_with = [
+ "@bazel_tools//platforms:linux",
+ "@bazel_tools//platforms:x86_64",
+ "@bazel_tools//tools/cpp:clang",
+ "//constraints:support_docker",
+ ${EXTRA_CONSTRAINTS}
+ ],
+ target_compatible_with = [
+ "@bazel_tools//platforms:linux",
+ "@bazel_tools//platforms:x86_64",
+ ],
+ toolchain = PACKAGE + LATEST_CONFIG_VERSION + "/bazel_" + LATEST_BAZEL_VERSION + "/default:cc-compiler-k8",
+ toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
+)