nxtgauge-backend-rust/.woodpecker.yml
2026-04-14 14:28:21 +02:00

125 lines
3.1 KiB
YAML

# Woodpecker CI - Build all services + update GitOps with image digests
#
# Secrets required in Woodpecker:
# - 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
concurrency:
limit: 4
matrix:
SERVICE:
- gateway
- users
- companies
- jobs
- leads
- job-seekers
- customers
- payments
- employees
- photographers
- makeup-artists
- tutors
- developers
- video-editors
- graphic-designers
- social-media-managers
- fitness-trainers
- catering-services
- ugc-content-creators
- cron
steps:
- name: build-and-push
image: woodpeckerci/plugin-kaniko:2.1.1
settings:
registry:
from_secret: REGISTRY_HOSTPORT
repo: nxtgauge-rust-${SERVICE}
dockerfile: Dockerfile.simple
build_args:
- SERVICE_NAME=${SERVICE}
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/git:latest
commands:
- |
set -e
echo "Updating GitOps for ${SERVICE}"
# Clone gitops repo using cloned source from Woodpecker
git clone https://github.com/Traceworks2023/nxtgauge-gitops.git /tmp/gitops
cd /tmp/gitops
git checkout main
# Update backend overlay
BACKEND_OVERLAY="apps/nxtgauge-backend-rust/overlays/prod"
if [ -f "${BACKEND_OVERLAY}/kustomization.yaml" ]; then
sed -i "s|image: registry.nxtgauge.com:5000/nxtgauge-rust-${SERVICE}:.*|image: registry.nxtgauge.com:5000/nxtgauge-rust-${SERVICE}:${CI_COMMIT_SHA}|" \
${BACKEND_OVERLAY}/kustomization.yaml
echo "Updated ${SERVICE} in ${BACKEND_OVERLAY}/kustomization.yaml"
fi
# Commit and push
if ! git diff --quiet; then
git config user.name "Woodpecker CI"
git config user.email "woodpecker@nxtgauge.com"
git add -A
git commit -m "ci: update ${SERVICE} to ${CI_COMMIT_SHA:0:8}"
git push origin main
echo "Pushed GitOps update"
else
echo "No changes to push"
fi
when:
status: success
matrix:
SERVICE: [gateway, users]
---
# Database migrations pipeline
when:
branch: [main, high-performance]
event: push
steps:
- name: build-and-push-migrate
image: woodpeckerci/plugin-kaniko:2.1.1
settings:
registry:
from_secret: REGISTRY_HOSTPORT
repo: nxtgauge-db-migrate
dockerfile: Dockerfile.migrate
context: .
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