Я настроил конвейер gitlab ci / cd для своего проекта. Поэтому я использовал базовый шаблон, который состоит из 2 этапов: сборка и упаковка. Этап сборки создает проект и создает файл jar, а этап создания пакета создает изображение и сохраняет его в реестре контейнера. И файл .gitlab-ci.yml был создан. Ниже приведен файл
image: docker:latest
services:
- docker:dind
stages:
- build
- package
build:
image: gradle:5.6.1-jdk11
stage: build
script:
- gradle clean build -x test
artifacts:
paths:
- build/libs/*.jar
package:
stage: package
script:
- docker build -t registry.gitlab.com/my-project/sample .
- docker login -u $CI_DOCKER_USERNAME -p $CI_DOCKER_PASSWORD registry.gitlab.com
- docker push rregistry.gitlab.com/my-project/sample
Когда мы хотим добавить новую функциональность, мы, очевидно, создаем новую ветвь, и поскольку этот файл существует и в новой ветке, сборка запускается. Но я не хочу запускать сборку для всех веток. Я хочу вызвать только развитие и мастер. В любом случае мы можем сделать это на уровне проекта вместо добавления only
на каждом этапе