#!/bin/bash # Build and push the J621 frontend image (amd64 + arm64) to the private Gitea # registry as :latest and :. # # Usage: ./push_frontend.sh [commit-sha] set -euo pipefail cd "$(dirname "$0")/.." REGISTRY="gitea.rainbow-herring.ts.net/jakebreath/j621-frontend" REGISTRY_HOST="$(printf '%s' "$REGISTRY" | cut -d/ -f1)" SHA="${1:-$(git rev-parse --short HEAD)}" BUILDER=multiarch PLATFORMS="${PLATFORMS:-linux/amd64,linux/arm64}" echo "==> Logging in to $REGISTRY_HOST ..." if [ -n "${REGISTRY_USER:-}" ] && [ -n "${REGISTRY_TOKEN:-}" ]; then # Non-interactive login for CI (workflow passes GITHUB_TOKEN). printf '%s' "$REGISTRY_TOKEN" | docker login "$REGISTRY_HOST" \ -u "$REGISTRY_USER" --password-stdin else docker login "$REGISTRY_HOST" fi if ! docker buildx inspect "$BUILDER" >/dev/null 2>&1; then echo "==> Creating buildx builder '$BUILDER' ..." docker buildx create --name "$BUILDER" --driver docker-container \ --platform "$PLATFORMS" --bootstrap else docker buildx inspect --bootstrap "$BUILDER" >/dev/null fi echo "==> Building + pushing $PLATFORMS -> $REGISTRY:{latest,$SHA} ..." docker buildx build --builder "$BUILDER" --push \ --platform "$PLATFORMS" \ --build-arg "GIT_HASH=$SHA" \ -f deploy/J621-Frontend \ -t "$REGISTRY:latest" \ -t "$REGISTRY:$SHA" \ . echo "==> Done. On the deploy host:" echo " docker login $REGISTRY_HOST && docker compose pull && docker compose up -d"