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: - /tmp/gradle-cache:/gradle-cache:rw # Шаг 2: Сборка Docker образа с именем my-spring-app docker-build: image: docker:24.0 commands: # Собираем образ с именем my-spring-app и тегом из коммита - docker build -t my-spring-app:$CI_COMMIT_SHA . # Тэг latest для удобства - docker tag my-spring-app:$CI_COMMIT_SHA my-spring-app:latest volumes: - /var/run/docker.sock:/var/run/docker.sock # Шаг 3: Деплой в Minikube deploy: image: bitnami/kubectl:latest commands: # Обновляем образ в deployment - kubectl set image deployment/my-spring-app my-spring-app=my-spring-app:$CI_COMMIT_SHA # Ждем успешного развертывания - kubectl rollout status deployment/my-spring-app when: status: success