blob: 5094d567b1a46b203c407c38bc2d323bd6f5ada5 [file] [log] [blame]
Mohammed Naser37694382024-04-02 21:11:31 -04001variable "REGISTRY" {
2 default = "registry.atmosphere.dev/library"
3}
4
5variable "CACHE_REGISTRY" {
6 default = "registry.atmosphere.dev/cache"
7}
8
9variable "PUSH_TO_CACHE" {
10 default = false
11}
12
13function "cache_from" {
14 params = [image]
15 result = ["type=registry,ref=${CACHE_REGISTRY}/${image}"]
16}
17
18function "cache_to" {
19 params = [image]
20 result = PUSH_TO_CACHE ? [format("%s,%s", cache_from(image)[0], "mode=max,image-manifest=true,oci-mediatypes=true,compression=zstd")] : []
21}
22
23target "ubuntu" {
24 context = "./images/ubuntu"
25
26 cache-from = cache_from("ubuntu")
27 cache-to = cache_to("ubuntu")
28
29 contexts = {
30 ubuntu = "docker-image://ubuntu:jammy-20240227"
31 }
32}
33
34target "git" {
35 context = "./images/git"
36
37 cache-from = cache_from("git")
38 cache-to = cache_to("git")
39}
40
41target "ubuntu-cloud-archive" {
42 name = "ubuntu-cloud-archive-${release.tgt}"
43 context = "./images/ubuntu-cloud-archive"
44
45 cache-from = cache_from("ubuntu-cloud-archive:${release.name}")
46 cache-to = cache_to("ubuntu-cloud-archive:${release.name}")
47
48 matrix = {
49 release = [
50 {
51 tgt = "zed",
52 name = "zed",
53 },
54 {
55 tgt = "bobcat",
56 name = "2023.2",
57 }
58 ]
59 }
60
61 contexts = {
62 ubuntu = "target:ubuntu"
63 }
64
65 args = {
66 RELEASE = release.name
67 }
68}
69
70target "requirements" {
71 name = "requirements-${release.tgt}"
72 context = "./images/requirements"
73
74 cache-from = cache_from("requirements:${release.name}")
75 cache-to = cache_to("requirements:${release.name}")
76
77 matrix = {
78 release = [
79 {
80 tgt = "zed",
81 name = "zed",
82 },
83 {
84 tgt = "bobcat",
85 name = "2023.2",
86 }
87 ]
88 }
89
90 contexts = {
91 ubuntu = "target:ubuntu"
92 }
93
94 args = {
95 RELEASE = release.name
96 }
97}
98
99target "openstack-venv-builder" {
100 name = "openstack-venv-builder-${release.tgt}"
101 context = "./images/openstack-venv-builder"
102
103 cache-from = cache_from("openstack-venv-builder:${release.name}")
104 cache-to = cache_to("openstack-venv-builder:${release.name}")
105
106 matrix = {
107 release = [
108 {
109 tgt = "zed",
110 name = "zed",
111 },
112 {
113 tgt = "bobcat",
114 name = "2023.2",
115 }
116 ]
117 }
118
119 contexts = {
120 ubuntu-cloud-archive = "target:ubuntu-cloud-archive-${release.tgt}",
121 requirements = "target:requirements-${release.tgt}",
122 }
123
124 args = {
125 RELEASE = release.name
126 }
127}
128
129target "openstack-runtime" {
130 name = "openstack-runtime-${release.tgt}"
131 context = "./images/openstack-runtime"
132
133 cache-from = cache_from("openstack-runtime:${release.name}")
134 cache-to = cache_to("openstack-runtime:${release.name}")
135
136 matrix = {
137 release = [
138 {
139 tgt = "zed",
140 name = "zed",
141 },
142 {
143 tgt = "bobcat",
144 name = "2023.2",
145 }
146 ]
147 }
148
149 contexts = {
150 ubuntu-cloud-archive = "target:ubuntu-cloud-archive-${release.tgt}",
151 }
152
153 args = {
154 RELEASE = release.name
155 }
156}
157
158target "barbican" {
159 name = "barbican-${release.tgt}"
160 context = "./images/barbican"
161
162 cache-from = cache_from("barbican:${release.name}")
163 cache-to = cache_to("barbican:${release.name}")
164
165 tags = [
166 "${REGISTRY}/barbican:${release.name}",
167 "${REGISTRY}/barbican:${release.ref}"
168 ]
169
170 matrix = {
171 release = [
172 {
173 tgt = "bobcat",
174 name = "2023.2",
175 ref = "a00fcade4138ffc52cd9c84b5999297966f019b5"
176 }
177 ]
178 }
179
180 contexts = {
181 openstack-venv-builder = "target:openstack-venv-builder-${release.tgt}"
182 openstack-runtime = "target:openstack-runtime-${release.tgt}",
183 git = "target:git"
184 }
185
186 args = {
187 RELEASE = release.name
188 PROJECT = "barbican"
189 BARBICAN_GIT_REF = release.ref
190 }
191}
192
193group "default" {
194 targets = [
195 "barbican"
196 ]
197}