Continuous integration GitLab CI构建子项目并将它们分别部署到kubernetes

Continuous integration GitLab CI构建子项目并将它们分别部署到kubernetes,continuous-integration,gitlab,kubernetes,continuous-deployment,gitlab-ci,Continuous Integration,Gitlab,Kubernetes,Continuous Deployment,Gitlab Ci,如果我有一个GitLab项目,其中包含多个子文件夹: 两个java代码(来自java:alpine,使用maven编译和构建容器) 一个是nginx配置(来自openresty:alpine,用于构建web服务器容器) 每个子项目都有一个Dockerfile、deployment.yml和gitlab-ci.yml 对于项目中的每个子文件夹,deployment.yml都是类似的,因为所有子项目都会生成一个多容器kubernetes吊舱 我如何设置此项目以仅构建并部署我在上次提交时编辑的容器

如果我有一个GitLab项目,其中包含多个子文件夹:

  • 两个java代码(来自java:alpine,使用maven编译和构建容器)
  • 一个是nginx配置(来自openresty:alpine,用于构建web服务器容器)
每个子项目都有一个Dockerfile、deployment.yml和gitlab-ci.yml

对于项目中的每个子文件夹,deployment.yml都是类似的,因为所有子项目都会生成一个多容器kubernetes吊舱


我如何设置此项目以仅构建并部署我在上次提交时编辑的容器?

我使用了一种肮脏的技巧,例如为每个子项目在.gitlab-ci.yml中设置几个构建块,并为每个子项目上的每个设置
参数:

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构建阶段
,也是如此

之后,如果我推一个标签,比如
akka-1.0.3
,就会启动相应的管道作业


但是,对于单个项目,GitLab CI注册表中的图像只有一个名称存在问题,因此您应该将图像推送到其他地方(GCR等)

不应该只检查分支(而不是文件路径)?