Skip to content

Commit

Permalink
fix(bazel): don't give absolute path for images (#347)
Browse files Browse the repository at this point in the history
* fix(bazel): don't give absolute path for images

This causes us to hit #183 in most cases.
See https://buildkite.com/bazel/bcr-presubmit/builds/1247#0187e4cc-44e1-4e21-89a7-08e71f612bfc as an example.

We'll need to fix this in order to properly support Windows, but that is already broken for other reasons.

* fix: restore an argument which was lost

See bazel-contrib/rules_oci@614eb02#diff-05ca379f64e0094d8769326c0c6f3b42652556d4dd9dc35e117bcaf79bb936bfL35
  • Loading branch information
alexeagle authored May 4, 2023
1 parent 4549390 commit 104a53e
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions bazel/container_structure_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,30 @@ CMD = """\
readonly st=$(rlocation {st_path})
readonly yq=$(rlocation {yq_path})
readonly image=$(rlocation {image_path})
# When the image points to a folder, we can read the index.json file inside
if [[ -d "$image" ]]; then
readonly DIGEST=$("$yq" eval '.manifests[0].digest | sub(":"; "-")' "${{image}}/index.json")
if [[ -d "{image_path}" ]]; then
readonly DIGEST=$("$yq" eval '.manifests[0].digest | sub(":"; "-")' "{image_path}/index.json")
exec "$st" test {fixed_args} --default-image-tag "registry.structure_test.oci.local/image:$DIGEST" $@
else
exec "$st" test {fixed_args} $@
fi
exec "$st" test {fixed_args} $@
"""

def _structure_test_impl(ctx):
fixed_args = ["--driver", ctx.attr.driver]
test_bin = ctx.toolchains["@container_structure_test//bazel:structure_test_toolchain_type"].st_info.binary
yq_bin = ctx.toolchains["@aspect_bazel_lib//lib:yq_toolchain_type"].yqinfo.bin

image_path = to_rlocation_path(ctx, ctx.file.image)
image_path = ctx.file.image.short_path
# Prefer to use a tarball if we are given one, as it works with more 'driver' types.
if image_path.endswith(".tar"):
fixed_args.extend(["--image", "$(rlocation %s)" % image_path])
fixed_args.extend(["--image", image_path])
else:
# https://github.com/GoogleContainerTools/container-structure-test/blob/5e347b66fcd06325e3caac75ef7dc999f1a9b614/cmd/container-structure-test/app/cmd/test.go#L110
if ctx.attr.driver != "docker":
fail("when the 'driver' attribute is not 'docker', then the image must be a .tar file")
fixed_args.extend(["--image-from-oci-layout", "$(rlocation %s)" % image_path])
fixed_args.extend(["--image-from-oci-layout", image_path])
fixed_args.extend(["--default-image-tag", "registry.structure_test.oci.local/image:$DIGEST"])

for arg in ctx.files.configs:
Expand Down

0 comments on commit 104a53e

Please sign in to comment.