git - 当同时从两个分支提交时,Jenkins 多分支管道作业运行不明确
问题描述
我创建了一个多分支管道,它构建了一项工作。我使用正则表达式处理分支,所以只有主或开发运行。我从 gitlab 触发到管道。如果我与 master 或 development 分开提交,它会触发管道并且管道在正确的分支中运行作业。一切正常。如果我同时从 master 和 development 提交;管道为两个分支运行(管道>主和管道>开发运行),但它们使用相同的工作。所以这项工作在其中一个分支上运行。我希望为每个主分支和开发分支运行两个工作。
我克隆了那份工作来解决我的问题,但我想知道我错过了什么?我可以为多分支使用一项工作,还是应该为每个分支创建不同的工作,并发提交是否安全?
谢谢!
解决方案
假设您Jenkinsfile
用于多分支管道无条件地触发分支的另一项工作,詹金斯按预期完成了所有工作。
为此,您需要添加一些额外的逻辑。例如,您可以在触发构建时将分支名称作为参数添加到下游构建作业。这应该触发单独的下游构建:
build job: '<job name>', parameters: [string(name: 'Branch', value: env.BRANCH_NAME)]
您也可以使用BRANCH_NAME
. 但是我通常喜欢用env.BRANCH_NAME
它来表示这是一个环境变量。
但是,也许最好考虑以下几点:
与其使用该build
步骤触发另一个作业,不如将该作业的内容集成到Jenkinsfile
多分支管道本身中。然后它将每个分支执行一次。这是您可以尽可能高效地使用多分支管道的方式。
推荐阅读
- javascript - Javascript 在 azure ad b2c 自定义注册页面中不起作用
- javascript - 不能.removeClass 使用 $(this).next() - jQuery
- javascript - 通过 Javascript 和 jQuery 呈现闭包模板(大豆模板)的问题
- angular - 如何使用配置文件初始化 Amplify auth 以使用管道跨帐户部署 Angular 项目
- android - 来自 Android 的 Firebase 动态短链接 Facebook 帖子
- html - 是什么导致元素的宽度与位置:固定不相对于视口
- r - R中的summary(n())和count()困难
- python - 什么时候使用 sys.stdin 比使用 input() 更快?
- r - 警告消息:在更改为数字时强制引入 NA
- location - Miui、Oppo、Vivo 等自定义 rom 的位置问题