Files
ermnvldmr.com/ci/scripts/deploy-gitops.sh
T

44 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
SERVICE=$1
TAG=$2
if [ -z "$SERVICE" ] || [ -z "$TAG" ]; then
echo "Usage: $0 <service: www|docs|umami> <tag>"
exit 1
fi
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
APP_DIR="$ROOT_DIR/ci/k8s/apps/$SERVICE"
if [ ! -d "$APP_DIR" ]; then
echo "Error: Application directory '$APP_DIR' does not exist."
exit 1
fi
echo "Updating Kustomize image tag for '$SERVICE' to '$TAG'..."
cd "$APP_DIR"
IMAGE="git.ermnvldmr.com/deytenit/ermnvldmr.com/${SERVICE}"
if [[ "$TAG" =~ ^sha256:[0-9a-f]{64}$ ]]; then
kustomize edit set image "${IMAGE}=${IMAGE}@${TAG}"
elif [[ "$TAG" =~ ^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$ ]]; then
kustomize edit set image "${IMAGE}=${IMAGE}:${TAG}"
else
echo "Invalid image digest or tag" >&2
exit 1
fi
cd "$ROOT_DIR"
git config user.name "APEX CI"
git config user.email "adam@ermnvldmr.com"
git add "ci/k8s/apps/${SERVICE}/kustomization.yaml"
if git diff --staged --quiet; then
echo "No manifest changes to commit for $SERVICE."
else
git commit --no-gpg-sign -m "chore(release): deploy ${SERVICE} ${TAG} [skip ci]"
python3 "$ROOT_DIR/ci/scripts/git_write.py" HEAD:next
echo "Successfully deployed $SERVICE ($TAG) via GitOps."
fi