#!/usr/bin/env bash # Manual multi-arch build + push fallback when Gitea Actions isn't available. # # One-time setup: # docker buildx create --name multi --use # docker run --privileged --rm tonistiigi/binfmt --install all # # Auth: # docker login rg.nl-ams.scw.cloud -u nologin -p # # Usage: # ./build.sh # # Always tags: # :latest — moving pointer # : — immutable, traceable to a commit # : — semver from pyproject.toml (e.g. :0.1.0) set -euo pipefail cd "$(dirname "$0")" REGISTRY="${REGISTRY:-rg.nl-ams.scw.cloud/valinor}" IMAGE="${REGISTRY}/finrod" SHA="$(git rev-parse --short HEAD)" VERSION="$(awk -F\" '/^version =/ {print $2; exit}' pyproject.toml)" : "${VERSION:?Could not read version from pyproject.toml}" TAGS=(-t "${IMAGE}:latest" -t "${IMAGE}:${SHA}" -t "${IMAGE}:${VERSION}") docker buildx build \ --platform linux/amd64,linux/arm64 \ "${TAGS[@]}" \ --push \ . echo echo "Pushed:" echo " ${IMAGE}:latest" echo " ${IMAGE}:${SHA}" echo " ${IMAGE}:${VERSION}"