From fa8f3f9465e87d499f7d6428323f496a884b7818 Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Sat, 10 May 2025 16:57:03 -0700 Subject: initial commit --- worker/scripts/build_image | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 worker/scripts/build_image (limited to 'worker/scripts/build_image') diff --git a/worker/scripts/build_image b/worker/scripts/build_image new file mode 100644 index 0000000..ba1ec8f --- /dev/null +++ b/worker/scripts/build_image @@ -0,0 +1,67 @@ +#!/usr/bin/env -S deno run --allow-env --allow-net + +import type { BuildDockerImageJobProps } from "@liz-ci/model"; +import { + BitwardenSession, + getRequiredEnv, + getStdout, + type LoginItem, +} from "@liz-ci/utils"; + +const args: BuildDockerImageJobProps = { + registry: getRequiredEnv("registry"), + namespace: getRequiredEnv("namespace"), + repository: getRequiredEnv("repository"), + imageTag: getRequiredEnv("imageTag"), + + context: getRequiredEnv("context"), + dockerfile: getRequiredEnv("dockerfile"), + buildTarget: getRequiredEnv("buildTarget"), +}; + +const bitwardenSession = new BitwardenSession(); +const { username: registryUsername, password: registryPassword } = + (await bitwardenSession.getItem(args.registry))?.login ?? {}; +if (!(registryUsername && registryPassword)) { + throw new Error("where's the login info bruh"); +} + +await getStdout( + [ + "docker", + "login", + "--username", + registryUsername, + "--password", + registryPassword, + args.registry, + ], +); + +const tag = + `${args.registry}/${args.namespace}/${args.repository}:${args.imageTag}`; +await getStdout( + [ + "docker", + "build", + "--target", + args.buildTarget, + "-t", + tag, + "-f", + `${args.dockerfile}`, + `${args.context}`, + ], + { + clearEnv: true, + env: {}, + }, +); + +await getStdout( + [ + "docker", + "push", + tag, + ], +); -- cgit v1.2.3-70-g09d2