Files
test/.woodpecker.yml
dmitriy.churmeev 96c62c0bf8
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
change dockerfile
2026-03-12 18:35:14 +03:00

80 lines
2.6 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 -x test # Сборка без тестов
- ./gradlew clean build test
- ls -la build/libs/
environment:
GRADLE_USER_HOME: /gradle-cache
volumes:
- gradle-cache-pvc:/gradle-cache
# Шаг 2: Сборка Docker образа с именем my-spring-app
# docker-build:
# image: docker:24.0-dind # специальный образ с встроенным Docker daemon
# privileged: true # нужно для запуска своего демона
# commands:
# # Запускаем Docker daemon в фоне
# - dockerd-entrypoint.sh &
#
# # Даем демону время на запуск (5 секунд)
# - sleep 5
#
# # Проверяем, что демон работает
# - docker version
#
# # Собираем образ
# - docker build -t my-spring-app:$CI_COMMIT_SHA .
# - docker tag my-spring-app:$CI_COMMIT_SHA my-spring-app:latest
# - docker images | grep my-spring-app
#
docker-build-and-push:
image: docker:24.0-dind
privileged: true
commands:
- dockerd-entrypoint.sh &
- sleep 10
# Логинимся в 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 с указанием namespace apps
- kubectl set image deployment/my-spring-app -n apps my-spring-app=my-spring-app:$CI_COMMIT_SHA
# Ждем успешного развертывания
- kubectl rollout status deployment/my-spring-app -n apps
when:
status: success