| # Copyright 2017 The Bazel Authors. All rights reserved. |
| # |
| # 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 |
| # |
| # http://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. |
| |
| licenses(["notice"]) # Apache 2.0 |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| load("//rules/container:docker_toolchains.bzl", "toolchain_container") |
| load("//rules:docker_config.bzl", "docker_toolchain_autoconfig") |
| load( |
| "//rules:environments.bzl", |
| "clang_env", |
| "debian8_clang_default_keys", |
| "debian8_clang_default_packages", |
| "debian8_clang_default_repos", |
| "gcc_env", |
| ) |
| |
| bazel_next_release = "0.20.0" |
| |
| bazel_next_release_rc = "3" |
| |
| # Use "rbe-test-" prefix for easy identification of images to remove after the tests. |
| toolchain_container( |
| name = "rbe-test-jessie-with-pkgs", |
| additional_repos = debian8_clang_default_repos(), |
| base = "@official_jessie//image", |
| keys = debian8_clang_default_keys(), |
| packages = debian8_clang_default_packages() + [ |
| "gcc", |
| ], |
| ) |
| |
| # Targets here are for testing purposes, we do not actually |
| # maintain these configs anywhere |
| docker_toolchain_autoconfig( |
| name = "debian-jessie-autoconfig", |
| base = ":rbe-test-jessie-with-pkgs.tar", |
| env = gcc_env(), |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| docker_toolchain_autoconfig( |
| name = "debian-jessie-bazel-head-autoconfig", |
| base = ":rbe-test-jessie-with-pkgs.tar", |
| env = gcc_env(), |
| tags = ["manual"], |
| test = True, |
| use_bazel_head = True, |
| ) |
| |
| # Note that we only support Bazel rc versions at 0.10.0 or above. |
| docker_toolchain_autoconfig( |
| name = "debian-jessie-custom-bazel-rc-version-autoconfig", |
| base = ":rbe-test-jessie-with-pkgs.tar", |
| bazel_rc_version = bazel_next_release_rc, |
| bazel_version = bazel_next_release, |
| env = gcc_env(), |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| # Use "rbe-test-" prefix for easy identification of images to remove after the tests. |
| toolchain_container( |
| name = "rbe-test-xenial-with-pkgs", |
| additional_repos = [ |
| "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8", |
| ], |
| base = "@official_xenial//image", |
| keys = [ |
| "@bazel_gpg//file", |
| ], |
| packages = [ |
| "bazel", |
| "curl", |
| "gcc", |
| "git", |
| "openjdk-8-jdk", |
| "python-dev", |
| "unzip", |
| "wget", |
| "zip", |
| ], |
| ) |
| |
| docker_toolchain_autoconfig( |
| name = "ubuntu-xenial-autoconfig", |
| base = ":rbe-test-xenial-with-pkgs.tar", |
| env = gcc_env(), |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| docker_toolchain_autoconfig( |
| name = "external-repo-autoconfig", |
| base = ":rbe-test-xenial-with-pkgs.tar", |
| config_repos = [ |
| "local_config_sh", |
| "local_config_cc", |
| ], |
| env = gcc_env(), |
| git_repo = "https://github.com/bazelbuild/bazel", |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| # To build this target run: |
| # bazel build //tests/config:this-project-repo-autoconfig --define mount_project=$(realpath .) |
| # To test it run: |
| # bazel test //tests/config:this-project-repo-autoconfig_test --define mount_project=$(realpath .) |
| docker_toolchain_autoconfig( |
| name = "this-project-repo-autoconfig", |
| base = ":rbe-test-xenial-with-pkgs.tar", |
| config_repos = [ |
| "local_config_sh", |
| "local_config_cc", |
| ], |
| env = gcc_env(), |
| incompatible_changes_off = True, |
| mount_project = "$(mount_project)", |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| docker_toolchain_autoconfig( |
| name = "ubuntu-xenial-bazel-head-autoconfig", |
| base = ":rbe-test-xenial-with-pkgs.tar", |
| env = gcc_env(), |
| tags = ["manual"], |
| test = True, |
| use_bazel_head = True, |
| ) |
| |
| # Note that we only support Bazel rc versions at 0.10.0 or above. |
| docker_toolchain_autoconfig( |
| name = "ubuntu-xenial-custom-bazel-rc-version-autoconfig", |
| base = ":rbe-test-xenial-with-pkgs.tar", |
| bazel_rc_version = bazel_next_release_rc, |
| bazel_version = bazel_next_release, |
| env = gcc_env(), |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| # For test purpose only. Used by //tests/config:debian8_clang_autoconfig_test. |
| # debian8_clang_autoconfig_test compares configs generated by this target and those |
| # already published in the repo to make sure the current docker_toolchain_autoconfig |
| # can generate the exact same configs as before. |
| # Container: gcr.io/cloud-marketplace/google/clang-debian8@sha256:ac3b1fdc22c0f2b95abe67f2daf33788425fab52d4e6845900bfe1a42443098f |
| docker_toolchain_autoconfig( |
| name = "debian8-clang-0.3.0-bazel_0.10.0-autoconfig", |
| additional_repos = debian8_clang_default_repos(), |
| base = "@debian8-clang-test//image", |
| bazel_version = "0.10.0", |
| env = clang_env(), |
| keys = debian8_clang_default_keys(), |
| packages = debian8_clang_default_packages(), |
| tags = ["manual"], |
| test = True, |
| ) |
| |
| sh_test( |
| name = "debian8_clang_autoconfig_test", |
| size = "medium", |
| timeout = "long", |
| srcs = ["debian8_clang_autoconfig_test.sh"], |
| data = [ |
| ":debian8-clang-0.3.0-bazel_0.10.0-autoconfig_outputs.tar", |
| "@bazel_toolchains_test//file", |
| ], |
| ) |