aboutsummaryrefslogtreecommitdiff
path: root/releng/create_release.xsh
diff options
context:
space:
mode:
authorJade Lovelace <lix@jade.fyi>2024-06-09 00:27:06 -0700
committerJade Lovelace <lix@jade.fyi>2024-06-09 20:33:24 -0700
commit9aeb314e6a8276d3bd29f968c2baa44d5d19ca37 (patch)
tree9177ce42c9e62776b0a71ae31830ccb1c79ff05c /releng/create_release.xsh
parent4392d89eeaf4560bf41e0c914b8f42f2959964d3 (diff)
releng: support multiarch docker images
If we don't want to have separate registry tags by architecture (EWWWW), we need to be able to build multiarch docker images. This is pretty simple, and just requires making a manifest pointing to each of the component images. I was *going* to just do this API prodding with manifest-tool, but it doesn't support putting metadata on the outer manifest, which is actually kind of a problem because it then doesn't render the metadata on github. So I guess we get a simple little containers API implementation that is 90% auth code. Change-Id: I8bdd118d4cbc13b23224f2fb174b232432686bea
Diffstat (limited to 'releng/create_release.xsh')
-rw-r--r--releng/create_release.xsh12
1 files changed, 7 insertions, 5 deletions
diff --git a/releng/create_release.xsh b/releng/create_release.xsh
index 128edb63f..6f4df2142 100644
--- a/releng/create_release.xsh
+++ b/releng/create_release.xsh
@@ -258,15 +258,16 @@ def upload_artifacts(env: RelengEnvironment, noconfirm=False, no_check_git=False
'I want to release this'
)
+ docker_images = list((ARTIFACTS / f'lix/lix-{VERSION}').glob(f'lix-{VERSION}-docker-image-*.tar.gz'))
+ assert docker_images
+
print('[+] Upload to cache')
with open(DRVS_TXT) as fh:
upload_drv_paths_and_outputs(env, [x.strip() for x in fh.readlines() if x])
- docker_images = (ARTIFACTS / f'lix/lix-{VERSION}').glob(f'lix-{VERSION}-docker-image-*.tar.gz')
print('[+] Upload docker images')
- for image in docker_images:
- for target in env.docker_targets:
- docker.upload_docker_image(target, image)
+ for target in env.docker_targets:
+ docker.upload_docker_images(target, docker_images)
print('[+] Upload to release bucket')
aws s3 cp --recursive @(ARTIFACTS)/ @(env.releases_bucket)/
@@ -321,7 +322,8 @@ def build_artifacts(no_check_git=False):
build_manual(eval_result)
with open(DRVS_TXT, 'w') as fh:
- fh.write('\n'.join(drv_paths))
+ # don't bother putting the release tarballs themselves because they are duplicate and huge
+ fh.write('\n'.join(x['drvPath'] for x in eval_result if x['attr'] != 'lix-release-tarballs'))
make_artifacts_dir(eval_result, ARTIFACTS)
print(f'[+] Done! See {ARTIFACTS}')