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