81 lines
2.5 KiB
YAML
81 lines
2.5 KiB
YAML
# Woodpecker CI - Admin build + GitOps update
|
|
#
|
|
# Secrets required:
|
|
# - REGISTRY_HOSTPORT, REGISTRY_USERNAME, REGISTRY_PASSWORD (existing)
|
|
# - GITOPS_REPO_URL, GITOPS_BRANCH, GITOPS_TOKEN, GITOPS_USERNAME, GITOPS_EMAIL
|
|
|
|
when:
|
|
branch: [main, high-performance]
|
|
event: push
|
|
|
|
steps:
|
|
- name: build-and-push
|
|
image: woodpeckerci/plugin-kaniko:2.1.1
|
|
settings:
|
|
registry:
|
|
from_secret: REGISTRY_HOSTPORT
|
|
repo: nxtgauge-admin-solid
|
|
dockerfile: Dockerfile.simple
|
|
tags:
|
|
- ${CI_COMMIT_SHA}
|
|
- latest
|
|
- high-performance-latest
|
|
username:
|
|
from_secret: GHCR_USERNAME
|
|
password:
|
|
from_secret: GHCR_TOKEN
|
|
insecure: true
|
|
insecure_pull: true
|
|
skip_tls_verify: true
|
|
platforms: linux/amd64
|
|
cache: false
|
|
|
|
- name: update-gitops
|
|
image: alpine:latest
|
|
environment:
|
|
GITOPS_REPO_URL:
|
|
from_secret: GITOPS_REPO_URL
|
|
GITOPS_BRANCH:
|
|
from_secret: GITOPS_BRANCH
|
|
GITOPS_TOKEN:
|
|
from_secret: GITOPS_TOKEN
|
|
commands:
|
|
- |
|
|
set -e
|
|
apk add --no-cache git bash sed
|
|
|
|
echo "Updating GitOps for nxtgauge-admin-solid"
|
|
|
|
# Clone gitops repo
|
|
GIT_REPO=$(echo "${GITOPS_REPO_URL}" | sed 's|https://||')
|
|
git clone "https://x-access-token:${GITOPS_TOKEN}@${GIT_REPO}" /tmp/gitops
|
|
cd /tmp/gitops
|
|
git checkout ${GITOPS_BRANCH:-main}
|
|
|
|
# Update admin overlay
|
|
ADMIN_OVERLAY="apps/nxtgauge-admin-solid/overlays/prod"
|
|
if [ -f "${ADMIN_OVERLAY}/kustomization.yaml" ]; then
|
|
sed -i "s|image: registry.nxtgauge.com:5000/nxtgauge-admin-solid:.*|image: registry.nxtgauge.com:5000/nxtgauge-admin-solid:${CI_COMMIT_SHA}|" \
|
|
${ADMIN_OVERLAY}/kustomization.yaml
|
|
echo "Updated admin image to ${CI_COMMIT_SHA}"
|
|
fi
|
|
|
|
# Also update base if needed
|
|
ADMIN_BASE="apps/nxtgauge-admin-solid/base"
|
|
if [ -f "${ADMIN_BASE}/deployment.yaml" ]; then
|
|
sed -i "s|image: registry.nxtgauge.com:5000/nxtgauge-admin-solid.*|image: registry.nxtgauge.com:5000/nxtgauge-admin-solid:${CI_COMMIT_SHA}|" \
|
|
${ADMIN_BASE}/deployment.yaml
|
|
echo "Updated admin base deployment"
|
|
fi
|
|
|
|
# Commit if changed
|
|
if ! git diff --quiet; then
|
|
git add -A
|
|
git commit -m "ci: update nxtgauge-admin-solid to ${CI_COMMIT_SHA:0:8}"
|
|
git push origin ${GITOPS_BRANCH:-main}
|
|
echo "Pushed GitOps update"
|
|
else
|
|
echo "No changes to push"
|
|
fi
|
|
when:
|
|
status: success
|