59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
when:
|
|
branch: [main, high-performance]
|
|
event: push
|
|
|
|
steps:
|
|
- name: detect-changes
|
|
image: alpine/git
|
|
commands:
|
|
- apk add --no-cache bash
|
|
- |
|
|
#!/bin/bash
|
|
set -e
|
|
|
|
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD || echo "")
|
|
|
|
# Skip if only docs changed
|
|
if echo "$CHANGED_FILES" | grep -qE "^\.github/|^\.woodpecker|\.md$"; then
|
|
if ! echo "$CHANGED_FILES" | grep -qE "^(src/|package\.json|Dockerfile|vite\.config)"; then
|
|
echo "⏭️ Only docs changed, skipping"
|
|
exit 78
|
|
fi
|
|
fi
|
|
|
|
RELEVANT_CHANGED=false
|
|
if echo "$CHANGED_FILES" | grep -qE "^(src/|package\.json|package-lock\.json|Dockerfile|vite\.config|tsconfig|public/)"; then
|
|
RELEVANT_CHANGED=true
|
|
echo "✅ Admin panel code changed"
|
|
fi
|
|
|
|
if [ "$RELEVANT_CHANGED" = "true" ]; then
|
|
echo "🚀 Building admin panel"
|
|
exit 0
|
|
else
|
|
echo "⏭️ Skipping admin panel"
|
|
exit 78
|
|
fi
|
|
|
|
- name: build-and-push
|
|
image: woodpeckerci/plugin-docker-buildx:5.0.0
|
|
settings:
|
|
# Use internal registry
|
|
registry: docker-registry.registry.svc.cluster.local:5000
|
|
repo: docker-registry.registry.svc.cluster.local:5000/nxtgauge-admin-solid
|
|
dockerfile: Dockerfile
|
|
tags:
|
|
- ${CI_COMMIT_SHA}
|
|
- latest
|
|
- high-performance-latest
|
|
# Use Docker Hub for base images
|
|
logins:
|
|
- registry: https://index.docker.io/v1/
|
|
username:
|
|
from_secret: DOCKERHUB_USERNAME
|
|
password:
|
|
from_secret: DOCKERHUB_TOKEN
|
|
platforms: linux/amd64
|
|
# Enable caching from/to internal registry
|
|
cache_from: docker-registry.registry.svc.cluster.local:5000/nxtgauge-admin-solid:cache
|
|
cache_to: docker-registry.registry.svc.cluster.local:5000/nxtgauge-admin-solid:cache
|