-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-bake.hcl
104 lines (93 loc) · 2.31 KB
/
docker-bake.hcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
PROTOC_VERSION = "22.0"
group "default" {
targets = ["test", "test_package", "lint-all"]
}
group "lint-all" {
targets = ["lint", "lint-mypy", "lint-protobuf"]
}
function "get_py_image_tag" {
params = [py_version]
// Don't use slim build for rc because wheels may need compiling, and slim
// does not have gcc, etc.
result = (
py_version == "latest"
? "slim"
: can(regex("^.*-rc$", py_version))
? py_version
: "${py_version}-slim"
)
}
py_versions = ["3.9", "3.10", "3.11", "3.12", "3.13-rc"]
target "test" {
name = "test_py${replace(py, ".", "")}"
matrix = {
py = py_versions,
}
args = {
PYTHON_VER = get_py_image_tag(py)
}
target = "test"
no-cache-filter = ["test"]
output = ["type=cacheonly"]
}
target "test_package" {
name = "test_package_py${replace(py, ".", "")}"
matrix = {
py = py_versions,
}
args = {
PYTHON_VER = get_py_image_tag(py)
}
target = "test-package"
no-cache-filter = ["test-package"]
output = ["type=cacheonly"]
}
target "_lint" {
args = {
PYTHON_VER = get_py_image_tag("latest")
}
no-cache-filter = ["lint-setup"]
output = ["type=cacheonly"]
}
target "lint" {
inherits = ["_lint"]
name = "lint-${lint_type}"
matrix = {
lint_type = ["check", "format"],
}
target = "lint-${lint_type}"
}
target "lint-mypy" {
inherits = ["_lint"]
name = "lint-mypy-${replace(py, ".", "")}"
matrix = {
py = py_versions,
}
args = {
PYTHON_VER = get_py_image_tag(py)
}
target = "lint-mypy"
}
target "lint-protobuf" {
inherits = ["_lint"]
args = {
PROTOC_VERSION = PROTOC_VERSION
}
contexts = {
generated-protobuf = "target:protobuf"
}
target = "lint-protobuf"
}
target "protobuf" {
args = {
PYTHON_VER = get_py_image_tag("latest")
PROTOC_VERSION = PROTOC_VERSION
}
contexts = {
// https://github.com/denoland/denokv/commits/main/proto/schema/datapath.proto
denokv-repo = "https://github.com/denoland/denokv.git#e6a50cfe7ea5e66b9bf68da3a0731c72122ff17f" # Dec 21, 2023
}
target = "datapath-protobuf-python"
no-cache-filter = ["build-datapath-protobuf-python"]
output = ["type=local,dest=build/protobuf_${PROTOC_VERSION}"]
}