gitdataai/push.sh

33 lines
1.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
REGISTRY="${REGISTRY:-harbor.gitdata.me/gtateam}"
TAG="${TAG:-$(git rev-parse --short HEAD)}"
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
log() { echo -e "${GREEN}[OK]${NC} $*"; }
err() { echo -e "${RED}[ERR]${NC} $*"; exit 1; }
# ── credentials ─────────────────────────────────────────────────────
: "${DOCKER_USERNAME:?DOCKER_USERNAME env var required}"
: "${DOCKER_PASSWORD:?DOCKER_PASSWORD env var required}"
log "Logging into $REGISTRY..."
echo "$DOCKER_PASSWORD" | docker login "$REGISTRY" -u "$DOCKER_USERNAME" --password-stdin
# ── tag & push ──────────────────────────────────────────────────────
IMAGES=(app email-worker git-hook gitserver metrics-aggregator static-server gingress)
for name in "${IMAGES[@]}"; do
SRC="${name}:${TAG}"
DST="${REGISTRY}/${name}:${TAG}"
log "Tagging $SRC -> $DST"
docker tag "$SRC" "$DST"
log "Pushing $DST"
docker push "$DST"
done
log "All images pushed to $REGISTRY"