@@ -69,14 +69,14 @@ def do_check_s3(checker: Checker,
69
69
yield (out , body )
70
70
71
71
72
- def main (ga_ver : str , ga : bool , include_latest : bool , include_docker : bool = True ,
73
- release_channel : str = "" , source_registry : str = "docker.io/datawire" , image_append : str = "" , image_name : str = "emissary" , s3_bucket : str = "datawire-static-files" ) -> int :
72
+ def main (ga_ver : str , chart_ver : str , include_docker : bool = True ,
73
+ release_channel : str = "" , source_registry : str = "docker.io/datawire" ,
74
+ image_append : str = "" , image_name : str = "emissary" ,
75
+ s3_bucket : str = "datawire-static-files" ) -> int :
74
76
warning = """
75
77
==> Warning: FIXME: While this script is handy in the things that it
76
- does check, there's still quite a bit that it doesn't check;
77
- check_artifacts.py is still riddled with "TODO"s. Don't be
78
- lulled in to thinking that running this script means you don't
79
- need to do anything else.
78
+ does check, there's still quite a bit more that it could check. Don't
79
+ be fooled into thinking that this script is complete.
80
80
"""
81
81
print (f"{ ansiterm .sgr .fg_red } { warning } { ansiterm .sgr } " )
82
82
@@ -164,9 +164,13 @@ def do_check_docker(checker: Checker, name: str) -> None:
164
164
else :
165
165
assert_eq (subcheck .result , ga_ver )
166
166
167
- with checker .check (name = 'Git tags' ) as check :
168
- check .result = 'TODO'
169
- raise NotImplementedError ()
167
+ # This is redundant since we now look at the tag for which the GitHub release was
168
+ # created -- we're trusting GitHub not to allow a release that points to a tag that
169
+ # doesn't exist.
170
+ # with checker.check(name='Git tags') as check:
171
+ # check.result = 'TODO'
172
+ # raise NotImplementedError()
173
+
170
174
with checker .check (name = 'Website YAML' ) as check :
171
175
yaml_str = http_cat ('https://app.getambassador.io/yaml/emissary/latest/emissary-emissaryns.yaml' ).decode ('utf-8' )
172
176
images = [
@@ -179,20 +183,26 @@ def do_check_docker(checker: Checker, name: str) -> None:
179
183
if release_channel != '' :
180
184
check_tag = f"{ check_tag } -{ release_channel } "
181
185
for image in images :
182
- assert '/ambassador :' in image
186
+ assert '/emissary :' in image
183
187
check .result = image .split (':' , 1 )[1 ]
184
188
assert_eq (check .result , check_tag )
185
- subprocess .run (['helm' , 'repo' , 'rm' , 'emissary' ], stdout = subprocess .PIPE , stderr = subprocess .STDOUT )
186
- subprocess .run (['helm' , 'repo' , 'add' , 'emissary' ,
187
- 'https://s3.amazonaws.com/{}/charts' .format (s3_bucket )], stdout = subprocess .PIPE , stderr = subprocess .STDOUT )
189
+
188
190
with checker .check (name = "Updating helm repo" ):
191
+ subprocess .run (['helm' , 'repo' , 'rm' , 'emissary' ], stdout = subprocess .PIPE , stderr = subprocess .STDOUT )
192
+ subprocess .run (['helm' , 'repo' , 'add' , 'emissary' ,
193
+ 'https://s3.amazonaws.com/{}/charts' .format (s3_bucket )], stdout = subprocess .PIPE , stderr = subprocess .STDOUT )
194
+
189
195
run (['helm' , 'repo' , 'update' ])
190
- chart_version = ""
191
- for line in fileinput .FileInput ("charts/emissary-ingress/Chart.yaml" ):
192
- if line .startswith ("version:" ):
193
- chart_version = line .replace ('version:' , '' ).strip ()
196
+
194
197
with checker .check (name = "Check Helm Chart" ):
198
+ # chart_version = ""
199
+ # for line in fileinput.FileInput("charts/emissary-ingress/Chart.yaml"):
200
+ # if line.startswith("version:"):
201
+ # chart_version = line.replace('version:', '').strip()
202
+ chart_version = chart_ver
203
+
195
204
yaml_str = run_txtcapture (['helm' , 'show' , 'chart' , '--version' , chart_version , 'emissary/emissary-ingress' ])
205
+
196
206
versions = [
197
207
line [len ('appVersion:' ):].strip () for line in yaml_str .split ("\n " ) if line .startswith ('appVersion:' )
198
208
]
@@ -202,12 +212,24 @@ def do_check_docker(checker: Checker, name: str) -> None:
202
212
if release_channel != '' :
203
213
check_tag = f"{ check_tag } -{ release_channel } "
204
214
assert_eq (check .result , check_tag )
215
+
205
216
with checker .check (name = 'ambassador.git GitHub release for chart' ) as check :
206
- check .result = 'TODO'
207
- raise NotImplementedError ()
217
+ tag = run_txtcapture ([
218
+ "gh" , "release" , "view" ,
219
+ "--json=tagName" ,
220
+ "--jq=.tagName" ,
221
+ "--repo=emissary-ingress/emissary" ,
222
+ f"chart/v{ chart_ver } " ])
223
+ assert_eq (tag .strip (), f"chart/v{ chart_ver } " )
224
+
208
225
with checker .check (name = 'ambassador.git GitHub release for code' ) as check :
209
- check .result = 'TODO'
210
- raise NotImplementedError ()
226
+ tag = run_txtcapture ([
227
+ "gh" , "release" , "view" ,
228
+ "--json=tagName" ,
229
+ "--jq=.tagName" ,
230
+ "--repo=emissary-ingress/emissary" ,
231
+ f"v{ ga_ver } " ])
232
+ assert_eq (tag .strip (), f"v{ ga_ver } " )
211
233
212
234
if not checker .ok :
213
235
return 1
0 commit comments