使用公共部署和测试阶段实现多项目gitlab管道



我的任务是为云Saas解决方案实现一个gitlab ci/cd管道。我们的产品由4个微服务组成,每个微服务都在一个单独的git项目中。我的目标是建立一个管道,在这个管道中,向服务a提交更改将构建/单元测试服务,在我们的CI环境中部署服务,然后在单独的项目中触发我们的端到端测试。为单个服务的单个提交解决这个问题非常简单。我有一个POC,在giitlab yml的部署阶段之后,我只使用"触发器"。属性触发端到端测试项目中的端到端测试。我的问题是弄清楚如何管理并行提交到每个项目同时。

例如:如果有人提交了服务A,并且它的管道启动了(build ->部署到CI空间->触发端到端测试)。然后,当管道仍在运行时,有人提交到服务B,触发它的管道(build ->部署到CI空间->端到端测试),如何防止提交到服务B的部署阶段在提交到服务A的端到端仍然运行时运行?基本上,如果类似的阶段在其他管道中运行,我希望部署阶段和E2E阶段保持不变。

注意:服务在单独的git项目中存在很长时间的历史,所以如果任何解决方案需要重组项目,它必须是一个非常令人信服的理由。

您可以为您的end2end管道配置一个单独的runner,并将此runner限制为每次一个管道

看到https://docs.gitlab.com/runner/configuration/advanced-configuration.html the-runners-section

也看这个功能请求,它请求你正在寻找的功能:https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41560

还描述了其他几种解决方法。

相关内容

  • 没有找到相关文章

最新更新