如果我有一个包含多个子文件夹的GitLab项目:
每个子项目都有一个Dockerfile,deployment.yml和gitlab-ci.yml。
对于项目中的每个子文件夹,deployment.yml都是类似的,因为所有子项目都会产生一个多容器kubernetes pod。
我如何设置这个项目来构建和部署到kubernetes只有我上次提交时编辑的容器?
答案 0 :(得分: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等)