#!/bin/bash set -e # CI/CD Deploy Script # Usage: ./scripts/deploy.sh COMMIT_SHA=$(git rev-parse --short HEAD) IMAGE_NAME="ghcr.io/unchainedio/manoon-headless" IMAGE_TAG="$COMMIT_SHA" echo "=== Building Docker image ===" echo "Commit: $COMMIT_SHA" echo "Image: $IMAGE_NAME:$IMAGE_TAG" # Build Docker image docker build -t "$IMAGE_NAME:$IMAGE_TAG" -t "$IMAGE_NAME:latest" . # Push to registry (requires GHCR auth) echo "" echo "=== Pushing to GHCR ===" docker push "$IMAGE_NAME:$IMAGE_TAG" docker push "$IMAGE_NAME:latest" # Update kustomization with new tag echo "" echo "=== Updating kustomization.yaml ===" sed -i "s/newTag: .*/newTag: $COMMIT_SHA # Updated by CI\/CD/" k8s/kustomization.yaml # Commit and push the change (this triggers Flux deployment) echo "" echo "=== Committing and pushing ===" git add k8s/kustomization.yaml git commit -m "deploy: update image to $COMMIT_SHA [ci skip]" git push origin master echo "" echo "=== Deploy complete! ===" echo "Image: $IMAGE_NAME:$IMAGE_TAG" echo "Flux will auto-deploy within 30 seconds"