Skip to content

Commit 4d8845b

Browse files
committed
ci: adding a test for recursive dependencies
Make sure we have a test with a fake lock file that simulates a totally circular dependency tree to validate that starlark behaves as expected
1 parent ad42c06 commit 4d8845b

File tree

6 files changed

+148
-3
lines changed

6 files changed

+148
-3
lines changed

.github/workflows/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,5 +169,5 @@ jobs:
169169
import %workspace%/../../.github/workflows/ci.bazelrc
170170
- id: prepare
171171
run: |
172-
cd e2e/bzlmod-toolchain-circular-dependencies
173-
make test
172+
(cd e2e/bzlmod-toolchain-circular-dependencies && make test)
173+
(cd e2e/bzlmod-toolchain-circular-dependencies-fake && make test)

Makefile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,23 @@ e2e-bzlmod-toolchain-circular-dependencies:
6969
) \
7070
done
7171

72+
e2e-bzlmod-toolchain-circular-dependencies-fake:
73+
@for version in 7.x 8.x; do \
74+
( \
75+
cd e2e/bzlmod-toolchain-circular-dependencies-fake && \
76+
echo "Testing $$version bzlmod lock file from args" > /dev/stderr && \
77+
USE_BAZEL_VERSION=$$version bazelisk --batch build //... \
78+
) \
79+
done
80+
7281

7382
e2e: e2e-workspace \
7483
e2e-bzlmod \
7584
e2e-bzlmod-build-toolchain \
7685
e2e-bazel-bzlmod-lock-file \
7786
e2e-bazel-bzlmod-lock-file-from-args \
78-
e2e-bzlmod-toolchain-circular-dependencies
87+
e2e-bzlmod-toolchain-circular-dependencies \
88+
e2e-bzlmod-toolchain-circular-dependencies-fake
7989

8090
fmt: gofmt buildifier
8191

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
load("@bazeldnf//bazeldnf:defs.bzl", "rpmtree")
2+
3+
rpmtree(
4+
name = "rpms-circular-triplet-package-1",
5+
rpms = [
6+
"@rpms-circular-triplet//package1",
7+
],
8+
)
9+
10+
rpmtree(
11+
name = "rpms-circular-triplet-package-2",
12+
rpms = [
13+
"@rpms-circular-triplet//package2",
14+
],
15+
)
16+
17+
rpmtree(
18+
name = "rpms-circular-triplet-package-3",
19+
rpms = [
20+
"@rpms-circular-triplet//package3",
21+
],
22+
)
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
"example MODULE.bazel to test bzlmod integration for bazeldnf without a prebuilt toolchain"
2+
3+
bazel_dep(name = "bazeldnf", dev_dependency = True)
4+
local_path_override(
5+
module_name = "bazeldnf",
6+
path = "../..",
7+
)
8+
9+
bazel_dep(name = "rules_pkg", version = "1.0.1")
10+
bazel_dep(name = "rules_go", version = "0.53.0", repo_name = "rules_go")
11+
12+
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
13+
go_sdk.download(version = "1.24.1")
14+
15+
bazel_dep(name = "gazelle", version = "0.42.0")
16+
bazel_dep(name = "toolchains_protoc", version = "0.3.7")
17+
18+
protoc = use_extension("@toolchains_protoc//protoc:extensions.bzl", "protoc")
19+
protoc.toolchain(
20+
google_protobuf = "com_google_protobuf",
21+
version = "v27.3",
22+
)
23+
use_repo(protoc, "com_google_protobuf", "toolchains_protoc_hub")
24+
25+
register_toolchains(
26+
"@toolchains_protoc_hub//:all",
27+
dev_dependency = True,
28+
)
29+
30+
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
31+
go_deps.from_file(go_mod = "@bazeldnf//:go.mod")
32+
use_repo(
33+
go_deps,
34+
"com_github_adrg_xdg",
35+
"com_github_bazelbuild_buildtools",
36+
"com_github_crillab_gophersat",
37+
"com_github_jdx_go_netrc",
38+
"com_github_klauspost_compress",
39+
"com_github_onsi_gomega",
40+
"com_github_sassoftware_go_rpmutils",
41+
"com_github_sirupsen_logrus",
42+
"com_github_spf13_cobra",
43+
"io_k8s_sigs_yaml",
44+
"org_golang_x_crypto",
45+
"org_golang_x_exp",
46+
)
47+
48+
bazeldnf_toolchain = use_extension("@bazeldnf//bazeldnf:extensions.bzl", "bazeldnf_toolchain")
49+
bazeldnf_toolchain.register(disable = True)
50+
51+
bazeldnf = use_extension("@bazeldnf//bazeldnf:extensions.bzl", "bazeldnf")
52+
bazeldnf.config(
53+
name = "rpms-circular-triplet",
54+
ignore_deps = False,
55+
lock_file = "//:rpms-circular-triplet.json",
56+
rpms = [
57+
"package1",
58+
"package2",
59+
"package3",
60+
],
61+
)
62+
use_repo(
63+
bazeldnf,
64+
"rpms-circular-triplet",
65+
)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
all: test
2+
3+
test:
4+
bazelisk query 'deps(@rpms-circular-triplet//...)' --output build
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"cli-arguments": [],
3+
"name": "",
4+
"repositories": {
5+
"fake-repository": [
6+
"https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os"
7+
]
8+
},
9+
"rpms": [
10+
{
11+
"name": "package1",
12+
"urls": [
13+
"Packages/audit-libs-3.1.5-4.el9.x86_64.rpm"
14+
],
15+
"repository": "fake-repository",
16+
"dependencies": [
17+
"package2",
18+
"package3"
19+
]
20+
},
21+
{
22+
"name": "package2",
23+
"urls": [
24+
"Packages/bash-5.1.8-9.el9.x86_64.rpm"
25+
],
26+
"repository": "fake-repository",
27+
"dependencies": [
28+
"package1",
29+
"package3"
30+
]
31+
},
32+
{
33+
"name": "package3",
34+
"urls": [
35+
"Packages/bzip2-libs-1.0.8-10.el9.x86_64.rpm"
36+
],
37+
"repository": "fake-repository",
38+
"dependencies": [
39+
"package1",
40+
"package2"
41+
]
42+
}
43+
]
44+
}

0 commit comments

Comments
 (0)