Skip to content

Commit 8b064cc

Browse files
authored
chore: cleanup repo and remove some dev deps (#620)
1 parent 9f0079b commit 8b064cc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+592
-718
lines changed

.bazelrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
build --incompatible_strict_action_env
66
build --nolegacy_external_runfiles
7-
test --test_env=DOCKER_HOST
7+
common --test_env=DOCKER_HOST --action_env=DOCKER_HOST --repo_env=DOCKER_HOST
88

99
# Disable bzlmod lockfile
1010
common --lockfile_mode=off

.github/workflows/ci.yaml

+1-25
Original file line numberDiff line numberDiff line change
@@ -130,31 +130,7 @@ jobs:
130130
- name: Configure Remote Docker Host
131131
if: ${{ matrix.os == 'macos-13' }}
132132
run: echo "DOCKER_HOST=$(grep 'tc.host' ~/.testcontainers.properties | cut -d '=' -f2 | xargs)" >> $GITHUB_ENV
133-
134-
- name: Free space
135-
if: ${{ matrix.os == 'ubuntu-latest' }}
136-
run: |
137-
sudo apt-get remove -y '^dotnet-.*'
138-
sudo apt-get remove -y '^llvm-.*'
139-
sudo apt-get remove -y 'php.*'
140-
sudo apt-get remove -y 'google*'
141-
sudo apt-get autoremove -y
142-
sudo apt-get clean
143-
rm -rf /usr/share/dotnet/
144-
145-
- name: Override CST
146-
if: ${{ matrix.bzlmodEnabled && matrix.folder == '.'}}
147-
run: |
148-
cat >> MODULE.bazel <<EOF
149-
single_version_override(
150-
module_name = "container_structure_test",
151-
patch_strip = 1,
152-
patches = [
153-
"//oci/tests:cst_exclusive.patch",
154-
],
155-
)
156-
EOF
157-
133+
158134
- name: bazel test //...
159135
working-directory: ${{ matrix.folder }}
160136
env:

MODULE.bazel

-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,5 @@ use_repo(bazel_lib, "bsd_tar_toolchains", "jq_toolchains")
3232
# Dev dependencies
3333

3434
bazel_dep(name = "rules_go", version = "0.46.0", dev_dependency = True, repo_name = "io_bazel_rules_go")
35-
bazel_dep(name = "rules_pkg", version = "0.7.0", dev_dependency = True)
3635
bazel_dep(name = "gazelle", version = "0.35.0", dev_dependency = True, repo_name = "bazel_gazelle")
3736
bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.4.1", dev_dependency = True)
38-
bazel_dep(name = "container_structure_test", version = "1.16.0", dev_dependency = True)

WORKSPACE

+3-32
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,6 @@ load("@bazel_skylib//lib:unittest.bzl", "register_unittest_toolchains")
3838

3939
register_unittest_toolchains()
4040

41-
load("@container_structure_test//:repositories.bzl", "container_structure_test_register_toolchain")
42-
43-
## Setup container structure test
44-
container_structure_test_register_toolchain(name = "container_structure_test")
45-
4641
## Setup rules_go
4742
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
4843

@@ -55,33 +50,9 @@ load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
5550

5651
gazelle_dependencies()
5752

58-
## Setup rules_pkg
59-
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
60-
61-
rules_pkg_dependencies()
62-
63-
## Unit test repositories
64-
65-
# For sign_external test
66-
new_local_repository(
67-
name = "empty_image",
68-
build_file = "//examples/sign_external:BUILD.template",
69-
path = "examples/sign_external/workspace",
70-
)
71-
72-
# For attest_external test
73-
new_local_repository(
74-
name = "example_sbom",
75-
build_file = "//examples/attest_external:BUILD.template",
76-
path = "examples/attest_external/workspace",
77-
)
78-
79-
# For testing fetching from various registries
80-
load(":fetch.bzl", "fetch_images")
53+
## Setup test repositories
54+
load(":fetch.bzl", "fetch_images", "fetch_test_repos")
8155

8256
fetch_images()
8357

84-
### Fetch buildx
85-
load("//examples/dockerfile:buildx.bzl", "fetch_buildx")
86-
87-
fetch_buildx()
58+
fetch_test_repos()

WORKSPACE.bzlmod

+4-19
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,11 @@
1-
new_local_repository(
2-
name = "empty_image", # for sign_external test
3-
build_file = "//examples/sign_external:BUILD.template",
4-
path = "examples/sign_external/workspace",
5-
)
6-
7-
new_local_repository(
8-
name = "example_sbom", # for attest_external test
9-
build_file = "//examples/attest_external:BUILD.template",
10-
path = "examples/attest_external/workspace",
11-
)
12-
13-
# Fetching various images
14-
load(":fetch.bzl", "fetch_images")
1+
## Setup test repositories
2+
load(":fetch.bzl", "fetch_images", "fetch_test_repos")
153

164
fetch_images()
175

6+
fetch_test_repos()
7+
188
### Setup rules_oci cosign
199
load("//cosign:repositories.bzl", "cosign_register_toolchains")
2010

2111
cosign_register_toolchains(name = "oci_cosign")
22-
23-
### Fetch buildx
24-
load("//examples/dockerfile:buildx.bzl", "fetch_buildx")
25-
26-
fetch_buildx()

e2e/wasm/BUILD.bazel

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
load("@aspect_bazel_lib//lib:tar.bzl", "tar")
12
load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_filegroup")
23
load("@bazel_skylib//rules:build_test.bzl", "build_test")
34
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
4-
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
55
load("@rules_rust//rust:defs.bzl", "rust_binary")
66

77
package(default_visibility = ["//visibility:public"])
@@ -18,7 +18,7 @@ platform_transition_filegroup(
1818
target_platform = "@rules_rust//rust/platform:wasi",
1919
)
2020

21-
pkg_tar(
21+
tar(
2222
name = "wasi_layer",
2323
srcs = ["wasi_binary"],
2424
)

e2e/wasm/MODULE.bazel

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ bazel_dep(name = "aspect_bazel_lib", version = "2.7.2")
33
bazel_dep(name = "bazel_skylib", version = "1.5.0")
44
bazel_dep(name = "platforms", version = "0.0.8")
55
bazel_dep(name = "rules_rust", version = "0.45.1")
6-
bazel_dep(name = "rules_pkg", version = "0.10.1")
76
bazel_dep(name = "hermetic_cc_toolchain", version = "3.1.0")
87

98
local_path_override(

e2e/wasm/WORKSPACE

-14
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,6 @@ load("@rules_oci//oci:repositories.bzl", "oci_register_toolchains")
1616

1717
oci_register_toolchains(name = "oci")
1818

19-
# rules_pkg
20-
http_archive(
21-
name = "rules_pkg",
22-
sha256 = "451e08a4d78988c06fa3f9306ec813b836b1d076d0f055595444ba4ff22b867f",
23-
urls = [
24-
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.7.1/rules_pkg-0.7.1.tar.gz",
25-
"https://github.com/bazelbuild/rules_pkg/releases/download/0.7.1/rules_pkg-0.7.1.tar.gz",
26-
],
27-
)
28-
29-
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
30-
31-
rules_pkg_dependencies()
32-
3319
# rules_rust
3420
http_archive(
3521
name = "rules_rust",

examples/BUILD.bazel

+12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
1+
load("@bazel_skylib//rules:native_binary.bzl", "native_binary")
2+
13
package(default_visibility = ["//examples:__subpackages__"])
24

5+
native_binary(
6+
name = "docker_cli",
7+
src = select({
8+
"@bazel_tools//src/conditions:linux_x86_64": "@docker_cli_linux_amd64//:docker",
9+
"@bazel_tools//src/conditions:darwin_arm64": "@docker_cli_darwin_arm64//:docker",
10+
"@bazel_tools//src/conditions:darwin_x86_64": "@docker_cli_darwin_amd64//:docker",
11+
}),
12+
out = "docker",
13+
)
14+
315
platform(
416
name = "linux_arm64",
517
constraint_values = [

examples/assertion/assert.bzl examples/assert.bzl

+85-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
"assertion rules to test metadata"
22

3+
load("@aspect_bazel_lib//lib:diff_test.bzl", "diff_test")
34
load("@bazel_skylib//rules:native_binary.bzl", "native_test")
45
load("@bazel_skylib//rules:write_file.bzl", "write_file")
56

7+
# THIS LOAD STATEMENT DEPENDS ON setup_assertion_repos.bzl
8+
load("@docker_configure//:defs.bzl", "TARGET_COMPATIBLE_WITH")
9+
load("//oci:defs.bzl", "oci_tarball")
10+
611
DIGEST_CMD = """
712
image_path="$(location {image})"
813
manifest_digest=$$($(JQ_BIN) -r '.manifests[0].digest | sub(":"; "/")' $$image_path/index.json)
@@ -18,7 +23,7 @@ def assert_oci_config(
1823
entrypoint_eq = None,
1924
cmd_eq = None,
2025
env_eq = None,
21-
ports_eq = None,
26+
exposed_ports_eq = None,
2227
user_eq = None,
2328
workdir_eq = None,
2429
architecture_eq = None,
@@ -38,9 +43,9 @@ def assert_oci_config(
3843
if env_eq:
3944
config["Env"] = ["=".join(e) for e in env_eq.items()]
4045
if workdir_eq:
41-
config["Workdir"] = workdir_eq
42-
if ports_eq:
43-
config["Ports"] = ports_eq
46+
config["WorkingDir"] = workdir_eq
47+
if exposed_ports_eq:
48+
config["ExposedPorts"] = {port: {} for port in exposed_ports_eq}
4449
if user_eq:
4550
config["User"] = user_eq
4651
if labels_eq:
@@ -98,3 +103,79 @@ def assert_oci_config(
98103
}),
99104
out = name,
100105
)
106+
107+
def assert_oci_image_command(
108+
name,
109+
image,
110+
args = [],
111+
tags = [],
112+
exit_code_eq = None,
113+
output_eq = None):
114+
"assert a that a container works with the given command."
115+
116+
tag = "oci.local/assert/" + native.package_name().replace("/", "_") + ":latest"
117+
oci_tarball(
118+
name = name + "_tarball",
119+
image = image,
120+
repo_tags = [tag],
121+
tags = tags + ["manual"],
122+
)
123+
124+
native.filegroup(
125+
name = name + "_tarball_archive",
126+
srcs = [name + "_tarball"],
127+
output_group = "tarball",
128+
tags = tags + ["manual"],
129+
)
130+
131+
docker_args = " ".join(['"' + arg + '"' for arg in ([tag] + args)])
132+
133+
native.genrule(
134+
name = name + "_gen",
135+
srcs = [
136+
name + "_tarball_archive",
137+
],
138+
output_to_bindir = True,
139+
cmd = """
140+
docker=$(location //examples:docker_cli)
141+
$$docker load -i $(location :{name}_tarball_archive)
142+
container_id=$$($$docker run -d {docker_args})
143+
$$docker wait $$container_id > $(location :{name}_exit_code)
144+
$$docker logs $$container_id > $(location :{name}_output)
145+
146+
""".format(name = name, docker_args = docker_args),
147+
outs = [
148+
name + "_output",
149+
name + "_exit_code",
150+
],
151+
target_compatible_with = TARGET_COMPATIBLE_WITH,
152+
tools = ["//examples:docker_cli"],
153+
)
154+
155+
if output_eq:
156+
write_file(
157+
name = name + "_output_eq_expected",
158+
out = name + "_output_eq_expected.txt",
159+
content = [output_eq],
160+
tags = tags + ["manual"],
161+
)
162+
diff_test(
163+
name = name + "_assert_output_eq",
164+
file1 = name + "_output",
165+
file2 = name + "_output_eq_expected",
166+
tags = tags,
167+
)
168+
169+
if exit_code_eq != None:
170+
write_file(
171+
name = name + "_exit_code_expected",
172+
out = name + "_exit_code_expected.txt",
173+
content = [str(exit_code_eq) + "\n"],
174+
tags = tags + ["manual"],
175+
)
176+
diff_test(
177+
name = name + "_assert_exit_code_eq",
178+
file1 = name + "_exit_code",
179+
file2 = name + "_exit_code_expected",
180+
tags = tags,
181+
)

0 commit comments

Comments
 (0)