ci: add image build jobs (#1051)
Signed-off-by: Mohammed Naser <mnaser@vexxhost.com>
diff --git a/images/build.sh b/images/build.sh
new file mode 100755
index 0000000..d93f853
--- /dev/null
+++ b/images/build.sh
@@ -0,0 +1,43 @@
+#!/bin/bash -xe
+
+TARGET=""
+PUSH=false
+
+while [[ $# -gt 0 ]]; do
+ key="$1"
+
+ case $key in
+ --push)
+ PUSH=true
+ shift
+ ;;
+ *)
+ if [ -z "$TARGET" ]; then
+ TARGET="$1"
+ else
+ echo "Invalid argument: $1"
+ exit 1
+ fi
+ shift
+ ;;
+ esac
+done
+
+if [ -z "$TARGET" ]; then
+ echo "Usage: $0 [--push] <target>"
+ exit 1
+fi
+
+docker buildx create --name=atmosphere --driver=docker-container || true
+
+if [ "$PUSH" = true ]; then
+ docker buildx bake --builder=atmosphere --provenance --sbom=true --push $TARGET
+
+ # Sign all images
+ export COSIGN_PASSWORD=""
+ for IMAGE in $(docker buildx bake --print ${TARGET} | jq -r '.target[].tags | select(. != null)[]'); do
+ cosign sign -y --recursive --key cosign.key ${IMAGE}
+ done
+else
+ docker buildx bake --builder=atmosphere --provenance --sbom=true $TARGET
+fi