Skip to content

Commit 1f2bc8c

Browse files
author
Flynn
committed
Fix ga-check: be more clear about which phase of things is breaking, and clear TODO items.
Signed-off-by: Flynn <[email protected]>
1 parent 1207878 commit 1f2bc8c

File tree

2 files changed

+50
-23
lines changed

2 files changed

+50
-23
lines changed

releng/lib/check_artifacts.py

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@ def do_check_s3(checker: Checker,
6969
yield (out, body)
7070

7171

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:
7476
warning = """
7577
==> 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.
8080
"""
8181
print(f"{ansiterm.sgr.fg_red}{warning}{ansiterm.sgr}")
8282

@@ -164,9 +164,13 @@ def do_check_docker(checker: Checker, name: str) -> None:
164164
else:
165165
assert_eq(subcheck.result, ga_ver)
166166

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+
170174
with checker.check(name='Website YAML') as check:
171175
yaml_str = http_cat('https://app.getambassador.io/yaml/emissary/latest/emissary-emissaryns.yaml').decode('utf-8')
172176
images = [
@@ -179,20 +183,26 @@ def do_check_docker(checker: Checker, name: str) -> None:
179183
if release_channel != '':
180184
check_tag = f"{check_tag}-{release_channel}"
181185
for image in images:
182-
assert '/ambassador:' in image
186+
assert '/emissary:' in image
183187
check.result = image.split(':', 1)[1]
184188
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+
188190
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+
189195
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+
194197
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+
195204
yaml_str = run_txtcapture(['helm', 'show', 'chart', '--version', chart_version, 'emissary/emissary-ingress'])
205+
196206
versions = [
197207
line[len('appVersion:'):].strip() for line in yaml_str.split("\n") if line.startswith('appVersion:')
198208
]
@@ -202,12 +212,24 @@ def do_check_docker(checker: Checker, name: str) -> None:
202212
if release_channel != '':
203213
check_tag = f"{check_tag}-{release_channel}"
204214
assert_eq(check.result, check_tag)
215+
205216
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+
208225
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}")
211233

212234
if not checker.ok:
213235
return 1

releng/release-ga-check

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,24 @@ if __name__ == '__main__':
1212
parser.add_argument('--no-docker', dest='docker', default=True, action='store_false')
1313
parser.add_argument('--promote-path', default="")
1414
parser.add_argument('--ga-version', required=True)
15+
parser.add_argument('--chart-version', required=True)
1516
parser.add_argument('--source-registry', default='docker.io/datawire')
1617
parser.add_argument('--image-name', default='emissary')
1718
parser.add_argument('--image-append', default='')
1819
args = parser.parse_args()
1920

2021
include_docker = True
2122
ga_ver = args.ga_version
22-
23+
chart_ver = args.chart_version
2324

2425
if not re_ga.match(ga_ver) and not re_ea.match(ga_ver):
2526
sys.stderr.write(f"{ga_ver} does not match X.Y.Z(-ea)?")
2627
sys.exit(2)
2728

28-
sys.exit(check_artifacts.main(ga_ver=ga_ver, ga=True, include_latest=True,
29+
if not re_ga.match(chart_ver) and not re_ea.match(chart_ver):
30+
sys.stderr.write(f"{chart_ver} does not match X.Y.Z(-ea)?")
31+
sys.exit(2)
32+
33+
sys.exit(check_artifacts.main(ga_ver=ga_ver, chart_ver=chart_ver,
2934
include_docker=args.docker, release_channel=args.promote_path,
3035
source_registry=args.source_registry, image_append=args.image_append, image_name=args.image_name))

0 commit comments

Comments
 (0)