Files
test/.woodpecker.yml
2026-03-12 23:24:46 +03:00

82 lines
2.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
when:
event: push
branch: main
steps:
test:
image: alpine:latest
commands:
- echo "WOODPECKER WORKS"
# Шаг 1: Сборка Spring Boot приложения через Gradle
build:
image: gradle:8.5-jdk21 # JDK
commands:
- chmod +x ./gradlew
- ./gradlew clean build test
environment:
GRADLE_USER_HOME: /gradle-cache
volumes:
- gradle-cache-pvc:/gradle-cache
docker-build-and-push:
image: docker:24.0-dind
privileged: true
commands:
- dockerd-entrypoint.sh &
- sleep 10
# Диагностика
- echo "=== Проверяем переменные ==="
- echo "Harbor host: $HARBOR_HOST"
- echo "Harbor project: $HARBOR_PROJECT"
- echo "Harbor username: $HARBOR_USERNAME"
- echo "Password length: $(echo $HARBOR_PASSWORD | wc -c) characters"
# Проверяем доступность Harbor
- echo "=== Проверяем доступность Harbor ==="
- curl -I https://$HARBOR_HOST/v2/ || true
# Пробуем логин с разными форматами
- echo "=== Пробуем логин ==="
- docker login $HARBOR_HOST -u "$HARBOR_USERNAME" -p "$HARBOR_PASSWORD" || true
# Логинимся в Harbor
- docker login $HARBOR_HOST -u $HARBOR_USERNAME -p $HARBOR_PASSWORD
# Собираем образ с тегом коммита
- docker build -t $HARBOR_HOST/$HARBOR_PROJECT/my-spring-app:$CI_COMMIT_SHA .
- docker push $HARBOR_HOST/$HARBOR_PROJECT/my-spring-app:$CI_COMMIT_SHA
# Тэг latest для удобства
- docker tag $HARBOR_HOST/$HARBOR_PROJECT/my-spring-app:$CI_COMMIT_SHA $HARBOR_HOST/$HARBOR_PROJECT/my-spring-app:latest
- docker push $HARBOR_HOST/$HARBOR_PROJECT/my-spring-app:latest
environment:
HARBOR_HOST:
from_secret: harbor_host
HARBOR_PROJECT:
from_secret: harbor_project
HARBOR_USERNAME:
from_secret: harbor_username
HARBOR_PASSWORD:
from_secret: harbor_password
deploy:
image: bitnami/kubectl:latest
commands:
# Обновляем образ в deployment
- kubectl set image deployment/my-spring-app -n apps my-spring-app=$HARBOR_HOST/$HARBOR_PROJECT/my-spring-app:$CI_COMMIT_SHA
- kubectl rollout status deployment/my-spring-app -n apps
environment:
HARBOR_HOST:
from_secret: harbor_host
HARBOR_PROJECT:
from_secret: harbor_project
when:
status: success