GitLab CI строит подпроекты и развертывает их в kubernetes отдельно


Если у меня есть проект GitLab, который содержит несколько вложенных папок:

  • два с кодом java (от java: alpine, для компиляции с maven и сборки контейнеров)
  • один с конфигурацией nginx (от openresty: alpine, чтобы построить контейнер веб-сервера)

Каждый из подпроектов имеет Dockerfile, deployment.yml и gitlab-ci.в формате YML.

Развертывание.yml аналогичен для каждой из вложенных папок в проекте, так как все вложенные проекты приводят к одному мультиконтейнеру kubernetes РМО.

Как я могу настроить этот проект на сборку и развертывание в kubernetes только контейнера, который я редактировал при последнем коммите?

1 2

1 ответ:

Я использовал грязный хак, как установка нескольких блоков сборки .gitlab-ci.yml для каждого подпроекта и настройка для каждого из них only параметра:

maven-build-akka:
  image: maven:3-jdk-8
  stage: build
  only:
    - /^akka-.*$/
  script:
    - cd akka
    - mvn package -B --settings ../settings.xml
  artifacts:
    paths:
      - akka/target/*.jar

И так для docker build stage.

После этого, если я нажму тег типа akka-1.0.3, будут запущены соответствующие задания конвейера.

Но, есть проблема с только одним именем для изображений в реестре GitLab CI для одного проекта, так что вы должны толкать изображения где-то еще (GCR и т. д.)