91 lines
2.9 KiB
YAML
91 lines
2.9 KiB
YAML
steps:
|
|
docker-config:
|
|
name: Setup Docker Config for Harbor Auth
|
|
image: alpine:3.19
|
|
environment:
|
|
PULL_USERNAME:
|
|
from_secret: DOCKER_PULL_BASE_IMAGES_USERNAME
|
|
PULL_PASSWORD:
|
|
from_secret: DOCKER_PULL_BASE_IMAGES_TOKEN
|
|
commands:
|
|
- mkdir -p /kaniko/.docker
|
|
- |
|
|
cat > /kaniko/.docker/config.json <<'EOF'
|
|
{
|
|
"auths": {
|
|
"harbor.dvirlabs.com": {
|
|
"username": "$PULL_USERNAME",
|
|
"password": "$PULL_PASSWORD"
|
|
}
|
|
}
|
|
}
|
|
EOF
|
|
- sed -i "s|\$PULL_USERNAME|$PULL_USERNAME|g" /kaniko/.docker/config.json
|
|
- sed -i "s|\$PULL_PASSWORD|$PULL_PASSWORD|g" /kaniko/.docker/config.json
|
|
|
|
build-and-push:
|
|
name: Build & Push Docker Image
|
|
image: woodpeckerci/plugin-kaniko
|
|
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
|