Skip to content

Commit fe84167

Browse files
authored
Merge pull request ClickHouse#33983 from ClickHouse/docker-green-on-retry
Fix dependencies tree for docker image check
2 parents 1b19139 + fb908a3 commit fe84167

File tree

2 files changed

+72
-22
lines changed

2 files changed

+72
-22
lines changed

tests/ci/docker_images_check.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,22 @@ def __init__(
3838
self.parent = parent
3939
self.built = False
4040

41-
def __eq__(self, other):
41+
def __eq__(self, other) -> bool: # type: ignore
4242
"""Is used to check if DockerImage is in a set or not"""
43-
return self.path == other.path
43+
return self.path == other.path and self.repo == self.repo
44+
45+
def __lt__(self, other) -> bool:
46+
if not isinstance(other, DockerImage):
47+
return False
48+
if self.parent and not other.parent:
49+
return False
50+
if not self.parent and other.parent:
51+
return True
52+
if self.path < other.path:
53+
return True
54+
if self.repo < other.repo:
55+
return True
56+
return False
4457

4558
def __hash__(self):
4659
return hash(self.path)
@@ -49,7 +62,7 @@ def __str__(self):
4962
return self.repo
5063

5164
def __repr__(self):
52-
return f"DockerImage(path={self.path},path={self.path},parent={self.parent})"
65+
return f"DockerImage(path={self.path},repo={self.repo},parent={self.parent})"
5366

5467

5568
def get_changed_docker_images(
@@ -105,7 +118,9 @@ def get_changed_docker_images(
105118
dependent,
106119
image,
107120
)
108-
changed_images.append(DockerImage(dependent, image.repo, image))
121+
changed_images.append(
122+
DockerImage(dependent, images_dict[dependent]["name"], image)
123+
)
109124
index += 1
110125
if index > 5 * len(images_dict):
111126
# Sanity check to prevent infinite loop.

tests/ci/docker_test.py

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,59 @@ def test_get_changed_docker_images(self):
2222
"docker/test/base",
2323
"docker/docs/builder",
2424
}
25-
images = di.get_changed_docker_images(pr_info, "/", self.docker_images_path)
26-
expected = {
27-
di.DockerImage("docker/test/base", "clickhouse/test-base"),
28-
di.DockerImage("docker/docs/builder", "clickhouse/docs-builder"),
29-
di.DockerImage("docker/test/stateless", "clickhouse/stateless-test"),
30-
di.DockerImage(
31-
"docker/test/integration/base", "clickhouse/integration-test"
32-
),
33-
di.DockerImage("docker/test/fuzzer", "clickhouse/fuzzer"),
34-
di.DockerImage(
35-
"docker/test/keeper-jepsen", "clickhouse/keeper-jepsen-test"
36-
),
37-
di.DockerImage("docker/docs/check", "clickhouse/docs-check"),
38-
di.DockerImage("docker/docs/release", "clickhouse/docs-release"),
39-
di.DockerImage("docker/test/stateful", "clickhouse/stateful-test"),
40-
di.DockerImage("docker/test/unit", "clickhouse/unit-test"),
41-
di.DockerImage("docker/test/stress", "clickhouse/stress-test"),
42-
}
25+
images = sorted(
26+
list(di.get_changed_docker_images(pr_info, "/", self.docker_images_path))
27+
)
28+
self.maxDiff = None
29+
expected = sorted(
30+
[
31+
di.DockerImage("docker/test/base", "clickhouse/test-base"),
32+
di.DockerImage("docker/docs/builder", "clickhouse/docs-builder"),
33+
di.DockerImage(
34+
"docker/test/stateless",
35+
"clickhouse/stateless-test",
36+
"clickhouse/test-base",
37+
),
38+
di.DockerImage(
39+
"docker/test/integration/base",
40+
"clickhouse/integration-test",
41+
"clickhouse/test-base",
42+
),
43+
di.DockerImage(
44+
"docker/test/fuzzer", "clickhouse/fuzzer", "clickhouse/test-base"
45+
),
46+
di.DockerImage(
47+
"docker/test/keeper-jepsen",
48+
"clickhouse/keeper-jepsen-test",
49+
"clickhouse/test-base",
50+
),
51+
di.DockerImage(
52+
"docker/docs/check",
53+
"clickhouse/docs-check",
54+
"clickhouse/docs-builder",
55+
),
56+
di.DockerImage(
57+
"docker/docs/release",
58+
"clickhouse/docs-release",
59+
"clickhouse/docs-builder",
60+
),
61+
di.DockerImage(
62+
"docker/test/stateful",
63+
"clickhouse/stateful-test",
64+
"clickhouse/stateless-test",
65+
),
66+
di.DockerImage(
67+
"docker/test/unit",
68+
"clickhouse/unit-test",
69+
"clickhouse/stateless-test",
70+
),
71+
di.DockerImage(
72+
"docker/test/stress",
73+
"clickhouse/stress-test",
74+
"clickhouse/stateful-test",
75+
),
76+
]
77+
)
4378
self.assertEqual(images, expected)
4479

4580
def test_gen_version(self):

0 commit comments

Comments
 (0)