Files
manoon-headless/scripts/deploy.sh
Unchained 81d74ced0c feat: migrate to standard Docker-based CI/CD deployment
- Add Dockerfile for building Next.js images
- Replace init-container deployment with standard deployment
- Add kustomization with image tag tracking
- Add deploy.sh script for CI/CD pipeline

This enables proper GitOps auto-deployment:
1. Build image with commit hash tag
2. Push to GHCR
3. Update kustomization.yaml image tag
4. Flux detects change and restarts pods
2026-03-07 11:09:59 +02:00

40 lines
1.0 KiB
Bash
Executable File

#!/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"