runner-images/shared/build-image.ts

24 lines
760 B
TypeScript
Raw Normal View History

2024-11-28 18:11:07 +08:00
#!/usr/bin/env bun
const $ = Bun.$;
const sharedDir = import.meta.dir;
const tag = process.argv[2];
const dirName = process.argv[3];
const arches = process.argv[4].split(",");
const pathToDnfCache = process.env["DNF_CACHE_PATH"];
const stag = tag.split('/');
const imageName = stag[stag.length - 1];
const tempTag = `localhost/runner-images/${imageName}`;
2024-11-28 18:11:07 +08:00
await $`buildah manifest create ${tag}`;
for (const arch of arches) {
await $`buildah build --arch ${arch} \
--pid=host --ipc=host --network=host --userns=host \
--uts=host ${pathToDnfCache ? `-v${pathToDnfCache}:/var/cache/dnf:O` : ""} \
2024-11-28 20:18:26 +08:00
--manifest ${tag} \
2024-11-28 18:11:07 +08:00
--volume ${sharedDir}:/imgbuild:z ${dirName}`;
}
await $`buildah tag ${tag} ${tempTag}`;