Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TemplateVariableInfo
provides a mechanism for custom make variable expansion.string_flag()
contains a simple (pre-built) way to generate flags. This be used withconfig_setting()
and can be set via commandline (without--define
).TemplateVariableInfo
support was added tostring_flag()
in bazelbuild/bazel-skylib#440.Many other Bazel target rules support make variable expansion on many attributes (e.g.
env
). This PR adds support forTemplateVariableInfo
(e.g. viastring_flag()
or other custom rule) to bats bazel test rules on theenv
attribute.Changes:
ctx.expand_make_variables()
in_bats_test_impl()
.$(location ...)
.:hello_world_test
(which testsenv
attribute usage) to also test flag-driven envs.@bazel_skylib
to workspace.string_flag()
intests/BUILD.bazel
.TemplateVariableInfo
) in a test-specific.bzl
file, it seemed better to just use the common (external/pre-existing) rule.git_repository()
(instead ofhttp_archive()
) as the necessary changes are not yet in a tag/release.glob()
..bash
files.update()
call with dict concat operator|
.hello_world.bats
.See https://bazel.build/rules/lib/providers/TemplateVariableInfo, https://bazel.build/docs/configurable-attributes, https://bazel.build/reference/be/general#config_setting, https://bazel.build/extending/config#defining-build-settings