当前位置: 首页 > 知识库问答 >
问题:

Jenkins和GitLab CI与多分支和单个管道的集成

仲孙宇定
2023-03-14

我正在测试Jenkins CI/CD方法。有一个git回购协议,它有一个主分支、一个QA分支和一个开发分支。还有许多单独的开发人员和功能分支被合并到开发人员中。开发人员分支被合并到qa,qa被合并到master。

我有一个使用gitlab-plugin的jenkins环境,其中有一个包含多分支管道的文件夹,该管道在任何提交上都运行开发人员/功能分支中的jenkinfile。它忽略了master、dev和qa分支。文件夹中还有4个管道,其中3个处理每个主分支的合并请求。第四个只是master的部署脚本

问题是当多分支管道存在时,GitLab的合并请求提交状态拒绝工作。CI标签只是说在提交合并请求后无法连接到CI服务。但是,如果我删除多分支管道,CI状态标签会立即开始工作。

请注意,这些构建在Jenkins中仍然运行良好,问题在于gitlabs的状态标记。

关于如何解决这个问题有什么想法吗?

编辑:当我在提交后阅读这篇文章时,我意识到拥有3个用于合并请求的管道是多么愚蠢,现在只有1个处理所有3个分支

共有1个答案

吴城
2023-03-14

结果表明,gitlab已损坏,无法很好地支持扩展管道。此外,我错误地关联了多分支管道。此错误将在该日期(9.3.3)的下一个补丁中修复

请参见合并位置https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12478

 类似资料:
  • 对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题: 1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件? 2) 每个分支都应

  • 我正在努力使用Jenkins 2.1多分支管道,在这里,我从同一个git存储库构建了多个工件。一些工件是独立的,应该根据它们各自目录中的更改触发构建。有些是依赖的,应该由先前的步骤/构建触发。 存储库有一个控制整个管道的文件。Jenkins多分支管道作业会在所有更改时触发(无其他行为)。 我不知道如何在目录dirA发生变化时触发工件A的构建。 git回购协议中的Jenkins文件file:///r

  • 问题内容: 目前,我们使用Jenkins作业DSL在每个Git分支上生成许多Jenkins作业。多分支管道插件似乎是一种有趣的方式,可以使用Jenkinsfiles获得一流的作业生成支持,并减少我们维护的Job DSL数量。 例如,我们有 libwidget-server 和 widget-server 开发分支项目。当libwidget- server构建完成时,将触发widget-server

  • 我对使用Jenkins文件和GIT插件的Jenkins多分支pipleline有一个问题。 问题是,每次向暂存分支推送都会触发master管道。所需的行为是,推送到暂存分支仅触发用于暂存的管道,而推送到主分支仅触发主管道 这是我的詹金斯档案 我将分享一些日志:这是主分支的日志 这是主分支的日志,但只有暂存有一个新的提交: 注意“已发现更改”,即使主分支上的头未更改 詹金斯·弗。2.190.1 Gi

  • 现在多分支管道作业类型已经成熟,还有什么理由再使用简单的管道作业类型吗?即使您现在只有一个分支,考虑到未来多个分支的可能性可能是明智的,那么假设您将Jenkins管道存储在SCM中,那么为您的Jenkins管道使用管道作业类型与始终使用多分支管道作业类型的动机是什么?现在这两种作业类型之间是否存在功能平价?

  • 美好的一天, 我尝试在新的Jenkins实例上设置多分支管道,在扫描多分支管道日志中遇到了以下错误: 没有这样的文件:E:\Continuous Integration\Jenkins\jobs\Enhanced API\indexing\indexing.log 根据jenkins.err.log,我遇到了一个 这个Jenkins的版本是2.85,带有以下版本的Git插件: Git客户端插件-2