blob: 5f92fbff04bf274c3dfaeec2ac6dc0139b7de9f2 [file] [log] [blame]
# Copyright 2023 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.
---
buildifier:
version: latest
# keep this argument in sync with .pre-commit-config.yaml
warnings: "all"
.reusable_config: &reusable_config
build_targets:
- "--"
- "..."
# As a regression test for #225, check that wheel targets still build when
# their package path is qualified with the repo name.
- "@rules_python//examples/wheel/..."
build_flags:
- "--keep_going"
test_targets:
- "--"
- "..."
test_flags:
- "--test_tag_filters=-integration-test"
.common_bzlmod_flags: &common_bzlmod_flags
test_flags:
- "--experimental_enable_bzlmod"
build_flags:
- "--experimental_enable_bzlmod"
.reusable_build_test_all: &reusable_build_test_all
build_targets: ["..."]
test_targets: ["..."]
.coverage_targets_example_bzlmod: &coverage_targets_example_bzlmod
coverage_targets: ["//:test"]
.coverage_targets_example_multi_python: &coverage_targets_example_multi_python
coverage_targets:
- //tests:my_lib_3_10_test
- //tests:my_lib_3_11_test
- //tests:my_lib_3_8_test
- //tests:my_lib_3_9_test
- //tests:my_lib_default_test
- //tests:version_3_10_test
- //tests:version_3_11_test
- //tests:version_3_8_test
- //tests:version_3_9_test
- //tests:version_default_test
tasks:
gazelle_extension:
name: Test the Gazelle extension
platform: ubuntu2004
build_targets: ["//..."]
test_targets: ["//..."]
working_directory: gazelle
ubuntu:
<<: *reusable_config
name: Default test on Ubuntu
platform: ubuntu2004
debian:
<<: *reusable_config
name: Default test on Debian
platform: debian11
macos:
<<: *reusable_config
name: Default test on macOS
platform: macos
windows:
<<: *reusable_config
name: Default test on Windows
platform: windows
test_flags:
- "--test_tag_filters=-integration-test,-fix-windows"
rbe:
<<: *reusable_config
name: Test on RBE
platform: rbe_ubuntu1604
test_flags:
- "--test_tag_filters=-integration-test,-acceptance-test"
integration_test_build_file_generation_ubuntu:
<<: *reusable_build_test_all
name: build_file_generation integration tests on Ubuntu
working_directory: examples/build_file_generation
platform: ubuntu2004
integration_test_build_file_generation_debian:
<<: *reusable_build_test_all
name: build_file_generation integration tests on Debian
working_directory: examples/build_file_generation
platform: debian11
integration_test_build_file_generation_macos:
<<: *reusable_build_test_all
name: build_file_generation integration tests on macOS
working_directory: examples/build_file_generation
platform: macos
integration_test_build_file_generation_windows:
<<: *reusable_build_test_all
name: build_file_generation integration tests on Windows
working_directory: examples/build_file_generation
platform: windows
integration_test_bzlmod_ubuntu:
<<: *reusable_build_test_all
<<: *coverage_targets_example_bzlmod
name: bzlmod integration tests on Ubuntu
working_directory: examples/bzlmod
platform: ubuntu2004
integration_test_bzlmod_debian:
<<: *reusable_build_test_all
<<: *coverage_targets_example_bzlmod
name: bzlmod integration tests on Debian
working_directory: examples/bzlmod
platform: debian11
integration_test_bzlmod_macos:
<<: *reusable_build_test_all
<<: *coverage_targets_example_bzlmod
name: bzlmod integration tests on macOS
working_directory: examples/bzlmod
platform: macos
integration_test_bzlmod_windows:
<<: *reusable_build_test_all
# coverage is not supported on Windows
name: bzlmod integration tests on Windows
working_directory: examples/bzlmod
platform: windows
integration_test_multi_python_versions_ubuntu:
<<: *reusable_build_test_all
<<: *coverage_targets_example_multi_python
name: multi_python_versions integration tests on Ubuntu
working_directory: examples/multi_python_versions
platform: ubuntu2004
integration_test_multi_python_versions_debian:
<<: *reusable_build_test_all
<<: *coverage_targets_example_multi_python
name: multi_python_versions integration tests on Debian
working_directory: examples/multi_python_versions
platform: debian11
integration_test_multi_python_versions_macos:
<<: *reusable_build_test_all
<<: *coverage_targets_example_multi_python
name: multi_python_versions integration tests on macOS
working_directory: examples/multi_python_versions
platform: macos
integration_test_multi_python_versions_windows:
<<: *reusable_build_test_all
# coverage is not supported on Windows
name: multi_python_versions integration tests on Windows
working_directory: examples/multi_python_versions
platform: windows
integration_test_pip_install_ubuntu:
<<: *reusable_build_test_all
name: pip_install integration tests on Ubuntu
working_directory: examples/pip_install
platform: ubuntu2004
integration_test_pip_install_debian:
<<: *reusable_build_test_all
name: pip_install integration tests on Debian
working_directory: examples/pip_install
platform: debian11
integration_test_pip_install_macos:
<<: *reusable_build_test_all
name: pip_install integration tests on macOS
working_directory: examples/pip_install
platform: macos
integration_test_pip_install_windows:
<<: *reusable_build_test_all
name: pip_install integration tests on Windows
working_directory: examples/pip_install
platform: windows
integration_test_pip_parse_ubuntu:
<<: *reusable_build_test_all
name: pip_parse integration tests on Ubuntu
working_directory: examples/pip_parse
platform: ubuntu2004
integration_test_pip_parse_debian:
<<: *reusable_build_test_all
name: pip_parse integration tests on Debian
working_directory: examples/pip_parse
platform: debian11
integration_test_pip_parse_macos:
<<: *reusable_build_test_all
name: pip_parse integration tests on macOS
working_directory: examples/pip_parse
platform: macos
integration_test_pip_parse_windows:
<<: *reusable_build_test_all
name: pip_parse integration tests on Windows
working_directory: examples/pip_parse
platform: windows
integration_test_pip_parse_vendored_ubuntu:
<<: *reusable_build_test_all
name: pip_parse_vendored integration tests on Ubuntu
working_directory: examples/pip_parse_vendored
platform: ubuntu2004
integration_test_pip_parse_vendored_debian:
<<: *reusable_build_test_all
name: pip_parse_vendored integration tests on Debian
working_directory: examples/pip_parse_vendored
platform: debian11
integration_test_pip_parse_vendored_macos:
<<: *reusable_build_test_all
name: pip_parse_vendored integration tests on macOS
working_directory: examples/pip_parse_vendored
platform: macos
# We don't run pip_parse_vendored under Windows as the file checked in is
# generated from a repository rule containing OS-specific rendered paths.
integration_test_py_proto_library_ubuntu:
<<: *reusable_build_test_all
name: py_proto_library integration tests on Ubuntu
working_directory: examples/py_proto_library
platform: ubuntu2004
integration_test_py_proto_library_debian:
<<: *reusable_build_test_all
name: py_proto_library integration tests on Debian
working_directory: examples/py_proto_library
platform: debian11
integration_test_py_proto_library_macos:
<<: *reusable_build_test_all
name: py_proto_library integration tests on macOS
working_directory: examples/py_proto_library
platform: macos
integration_test_py_proto_library_windows:
<<: *reusable_build_test_all
name: py_proto_library integration tests on Windows
working_directory: examples/py_proto_library
platform: windows
# Check the same using bzlmod as well
integration_test_py_proto_library_bzlmod_ubuntu:
<<: *reusable_build_test_all
<<: *common_bzlmod_flags
name: py_proto_library bzlmod integration tests on Ubuntu
working_directory: examples/py_proto_library
platform: ubuntu2004
integration_test_py_proto_library_bzlmod_debian:
<<: *reusable_build_test_all
<<: *common_bzlmod_flags
name: py_proto_library bzlmod integration tests on Debian
working_directory: examples/py_proto_library
platform: debian11
integration_test_py_proto_library_bzlmod_macos:
<<: *reusable_build_test_all
<<: *common_bzlmod_flags
name: py_proto_library bzlmod integration tests on macOS
working_directory: examples/py_proto_library
platform: macos
integration_test_py_proto_library_bzlmod_windows:
<<: *reusable_build_test_all
<<: *common_bzlmod_flags
name: py_proto_library bzlmod integration tests on Windows
working_directory: examples/py_proto_library
platform: windows
integration_test_pip_repository_annotations_ubuntu:
<<: *reusable_build_test_all
name: pip_repository_annotations integration tests on Ubuntu
working_directory: examples/pip_repository_annotations
platform: ubuntu2004
integration_test_pip_repository_annotations_debian:
<<: *reusable_build_test_all
name: pip_repository_annotations integration tests on Debian
working_directory: examples/pip_repository_annotations
platform: debian11
integration_test_pip_repository_annotations_macos:
<<: *reusable_build_test_all
name: pip_repository_annotations integration tests on macOS
working_directory: examples/pip_repository_annotations
platform: macos
integration_test_pip_repository_annotations_windows:
<<: *reusable_build_test_all
name: pip_repository_annotations integration tests on Windows
working_directory: examples/pip_repository_annotations
platform: windows
integration_test_compile_pip_requirements_ubuntu:
<<: *reusable_build_test_all
name: compile_pip_requirements integration tests on Ubuntu
working_directory: tests/compile_pip_requirements
platform: ubuntu2004
shell_commands:
# Make a change to the locked requirements and then assert that //:requirements.update does the
# right thing.
- "echo '' > requirements_lock.txt"
- "! git diff --exit-code"
- "bazel run //:requirements.update"
- "git diff --exit-code"
integration_test_compile_pip_requirements_debian:
<<: *reusable_build_test_all
name: compile_pip_requirements integration tests on Debian
working_directory: tests/compile_pip_requirements
platform: debian11
shell_commands:
# Make a change to the locked requirements and then assert that //:requirements.update does the
# right thing.
- "echo '' > requirements_lock.txt"
- "! git diff --exit-code"
- "bazel run //:requirements.update"
- "git diff --exit-code"
integration_test_compile_pip_requirements_macos:
<<: *reusable_build_test_all
name: compile_pip_requirements integration tests on macOS
working_directory: tests/compile_pip_requirements
platform: macos
shell_commands:
# Make a change to the locked requirements and then assert that //:requirements.update does the
# right thing.
- "echo '' > requirements_lock.txt"
- "! git diff --exit-code"
- "bazel run //:requirements.update"
- "git diff --exit-code"
integration_test_compile_pip_requirements_windows:
<<: *reusable_build_test_all
name: compile_pip_requirements integration tests on Windows
working_directory: tests/compile_pip_requirements
platform: windows
shell_commands:
# Make a change to the locked requirements and then assert that //:requirements.update does the
# right thing.
- "echo '' > requirements_lock.txt"
- "! git diff --exit-code"
- "bazel run //:requirements.update"
- "git diff --exit-code"
integration_test_pip_repository_entry_points_ubuntu:
<<: *reusable_build_test_all
name: pip_repository_entry_points integration tests on Ubuntu
working_directory: tests/pip_repository_entry_points
platform: ubuntu2004
integration_test_pip_repository_entry_points_debian:
<<: *reusable_build_test_all
name: pip_repository_entry_points integration tests on Debian
working_directory: tests/pip_repository_entry_points
platform: debian11
integration_test_pip_repository_entry_points_macos:
<<: *reusable_build_test_all
name: pip_repository_entry_points integration tests on macOS
working_directory: tests/pip_repository_entry_points
platform: macos
integration_test_pip_repository_entry_points_windows:
<<: *reusable_build_test_all
name: pip_repository_entry_points integration tests on Windows
working_directory: tests/pip_repository_entry_points
platform: windows
integration_test_ignore_root_user_error_ubuntu:
<<: *reusable_build_test_all
name: ignore_root_user_error integration tests on Ubuntu
working_directory: tests/ignore_root_user_error
platform: ubuntu2004
integration_test_ignore_root_user_error_debian:
<<: *reusable_build_test_all
name: ignore_root_user_error integration tests on Debian
working_directory: tests/ignore_root_user_error
platform: debian11
integration_test_ignore_root_user_error_macos:
<<: *reusable_build_test_all
name: ignore_root_user_error integration tests on macOS
working_directory: tests/ignore_root_user_error
platform: macos
integration_test_ignore_root_user_error_windows:
<<: *reusable_build_test_all
name: ignore_root_user_error integration tests on Windows
working_directory: tests/ignore_root_user_error
platform: windows