gitops-status-api/.woodpecker.yml
2026-04-21 15:42:25 +03:00

91 lines
2.7 KiB
YAML

steps:
setup-auth:
name: Setup Docker Auth for Harbor
image: alpine:3.19
environment:
PULL_USER:
from_secret: DOCKER_PULL_BASE_IMAGES_USERNAME
PULL_PASS:
from_secret: DOCKER_PULL_BASE_IMAGES_TOKEN
commands:
- mkdir -p /kaniko/.docker
- |
AUTH=$(echo -n "${PULL_USER}:${PULL_PASS}" | base64 -w0)
cat > /kaniko/.docker/config.json <<EOF
{
"auths": {
"harbor.dvirlabs.com": {
"auth": "$AUTH"
}
}
}
EOF
build-and-push:
name: Build & Push Docker Image
image: woodpeckerci/plugin-kaniko
depends_on:
- setup-auth
when:
branch: [ master, develop ]
event: [ push, pull_request, tag ]
settings:
registry: harbor.dvirlabs.com
repo: my-apps/status-api
dockerfile: Dockerfile
context: .
tags:
- latest
- ${CI_COMMIT_TAG:-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:7}}
username:
from_secret: DOCKER_USERNAME
password:
from_secret: DOCKER_PASSWORD
update-values:
name: Update image tag in observability-stack
image: alpine:3.19
when:
branch: [ master, develop ]
event: [ push ]
environment:
GIT_USERNAME:
from_secret: GIT_USERNAME
GIT_TOKEN:
from_secret: GIT_TOKEN
commands:
- ulimit -n 4096
- apk add --no-cache git yq
- git config --global user.name "woodpecker-bot"
- git config --global user.email "ci@dvirlabs.com"
- git clone "https://$${GIT_USERNAME}:$${GIT_TOKEN}@git.dvirlabs.com/dvirlabs/observability-stack.git"
- cd observability-stack
- |
TAG="${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA:0:7}"
echo "💡 Setting status-api image tag to: $TAG"
yq -i ".api.image.tag = \"$TAG\"" manifests/gitops-status-server/values.yaml
git add manifests/gitops-status-server/values.yaml
'git commit -m "ci: update status-api tag to $TAG" || echo "No changes"'
git push origin HEAD
trigger-gitops:
name: Trigger apps-gitops via Git push
image: alpine/git
when:
branch: [ master, develop ]
event: [ push ]
environment:
GIT_USERNAME:
from_secret: GIT_USERNAME
GIT_TOKEN:
from_secret: GIT_TOKEN
commands:
- git config --global user.name "woodpecker-bot"
- git config --global user.email "ci@dvirlabs.com"
- git clone "https://$${GIT_USERNAME}:$${GIT_TOKEN}@git.dvirlabs.com/dvirlabs/apps-gitops.git"
- cd apps-gitops
- echo "# trigger at $(date) by gitops-status-api" >> .trigger
- git add .trigger
- 'git commit -m "ci: trigger apps-gitops build (gitops-status-api)" || echo "no changes"'
- git push origin HEAD