Files
T
2026-06-04 15:35:52 -04:00

54 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env bash
# Build Roc OCI images locally.
#
# Usage:
# ./scripts/build.sh [roc-version]
#
# Default ROC_VERSION is "0.0.0-alpha1".
# Valid values: 0.0.0-alpha1, 0.0.0-alpha2-rolling, alpha3-rolling, alpha4-rolling
# Uses podman by default. Override with: BUILD_CMD=docker ./scripts/build.sh
#
# Builds all three targets: base, dev, ci
# Tags each with the version and ":latest".
#
# Registry defaults to "git.roo.lol/jbrechtel".
# Override with: REGISTRY=localhost:5000 ./scripts/build.sh
set -euo pipefail
ROC_VERSION="${1:-0.0.0-alpha1}"
REGISTRY="${REGISTRY:-git.roo.lol/jbrechtel}"
BUILD_CMD="${BUILD_CMD:-podman}"
BUILD_FLAGS="-f Containerfile"
HERE="$(cd "$(dirname "$0")/.." && pwd)"
cd "$HERE"
echo "=== Building Roc OCI images (version=${ROC_VERSION}, registry=${REGISTRY}) ==="
echo ""
build_target() {
local target="$1"
local image_name="$2"
echo "--- Building ${target} (${REGISTRY}/${image_name}:${ROC_VERSION}) ---"
$BUILD_CMD build \
$BUILD_FLAGS \
--target "$target" \
--build-arg "ROC_VERSION=${ROC_VERSION}" \
-t "${REGISTRY}/${image_name}:${ROC_VERSION}" \
-t "${REGISTRY}/${image_name}:latest" \
.
echo ""
}
build_target base roc-tools-base
build_target dev roc-tools-dev
build_target ci roc-tools-ci
echo "=== All images built successfully ==="
echo ""
echo "Images:"
$BUILD_CMD images --format "table {{.Repository}}:{{.Tag}}\t{{.Size}}" \
| grep "${REGISTRY}/roc-tools"