Build specific image tags

This commit is contained in:
Valentin Niess
2025-05-22 09:04:09 +02:00
parent 2f663acc32
commit a7c56e3c77
3 changed files with 13 additions and 3 deletions

View File

@@ -27,7 +27,8 @@ def execute(tag):
pythons.append((path.name, version))
pythons = sorted(pythons)
n = max(len(version) for (_, version) in pythons)
for (abi, version) in pythons:
log('LIST', "{:8} -> /opt/python/{:}".format(version, abi))
log('LIST', "{:{n}} -> /opt/python/{:}".format(version, abi, n=n))
return pythons

View File

@@ -12,14 +12,22 @@ __all__ = ['Arch', 'Downloader', 'ensure_image', 'ImageExtractor', 'LinuxTag',
def ensure_image(tag):
'''Extract a manylinux image to the cache'''
try:
tag, image_tag = tag.rsplit(':', 1)
except ValueError:
image_tag = 'latest'
tag, arch = tag.split('_', 1)
tag = LinuxTag.from_brief(tag)
arch = Arch.from_str(arch)
downloader = Downloader(tag=tag, arch=arch)
downloader.download()
downloader.download(tag=image_tag)
image_extractor = ImageExtractor(downloader.default_destination())
image_extractor = ImageExtractor(
prefix = downloader.default_destination(),
tag = image_tag
)
image_extractor.extract()
return SimpleNamespace(

View File

@@ -56,6 +56,7 @@ class Downloader:
def download(
self,
destination: Optional[Path]=None,
*,
tag: Optional[str] = 'latest'
):
'''Download Manylinux image'''