目前,我正在尝试理解Gitlab-CI多项目管道。我想实现在另一个流水线结束时运行流水线。
示例:我在名称空间baseimages
中保存了一个项目参数,其中包含一些配置,如nginx
-cgi-params。ci-file如下所示:
stages:
- release
- notify
variables:
DOCKER_HOST: "tcp://localhost:2375"
DOCKER_REGISTRY: "registry.mydomain.de"
SERVICE_NAME: "nginx"
DOCKER_DRIVER: "overlay2"
release:
stage: release
image: docker:git
services:
- docker:dind
script:
- docker build -t $SERVICE_NAME:latest .
- docker tag $SERVICE_NAME:latest $DOCKER_REGISTRY/$SERVICE_NAME:latest
- docker push $DOCKER_REGISTRY/$SERVICE_NAME:latest
only:
- master
notify:
stage: notify
image: appropriate/curl:latest
script:
- curl -X POST -F token=$CI_JOB_TOKEN -F ref=master https://gitlab.mydomain.de/api/v4/projects/1/trigger/pipeline
only:
- master
现在我想要有多个项目依赖于这个镜像,如果我的基本镜像发生变化,比如新的nginx版本,让它们重新构建。
baseimage
|
---------------------------
| | |
project1 project2 project3
如果我向另一个项目添加触发器,并在$GITLAB_CI_TOKEN处插入生成的令牌,则外部管道将启动,但没有文档(https://docs.gitlab.com/ee/ci/multi_project_pipelines.html)中所示的组合图
如何才能显示完整的流水线图?我是否必须将依赖于我的baseimage的每个项目添加到baseimage的CI-File中,或者是否可以在每个项目中订阅baseimage-pipline?
发布于 2018-10-31 02:00:32
发布于 2018-10-31 22:14:17
嗯,在深入研究了一些文档之后,我发现了一句话,它说明Gitlab CE提供了标记为Core-Feature的特性。
发布于 2019-04-01 02:38:02
我们在需要的地方提供了50+ Gitlab包。我们过去所做的是将提交推送到下游包,等待CI完成,然后将另一个提交推送到上游包,等待CI完成,等等。
您可以做的另一件事是手动触发构建,您可以手动确定顺序。
如果这些都不适合你,或者你想要一个更好的方法,我构建了一个名为Gitlab Pipes的工具来帮助你做到这一点。我在内部使用了几个月,意识到人们需要这样的东西,所以我做了公开它的工作。
基本上,它会侦听Gitlab通知,当它看到对包的提交时,它会读取.gitlab-pipes.yml
文件来确定项目的依赖关系。它将能够构建项目的依赖关系图,并在下游提交时构建使用者包。
documentation is here,它可以告诉你它是如何工作的。然后是primary app website is here.
https://stackoverflow.com/questions/53063481
复制相似问题