当前位置: 首页 > 面试题库 >

从位桶触发时,如何使Jenkins仅构建要素分支(如果它们已更改)?

姜烨伟
2023-03-14
问题内容

我有一个詹金斯(Jenkins)工作,该工作建立与“来源/功能/ **”匹配的分支。

每当通过存储库挂钩(https://confluence.atlassian.com/display/BITBUCKET/Jenkins+hook+management)对存储库进行更改时,Bitbucket都会触发构建作业。

只要功能分支上有更改,此工作就可以正常工作,作业会识别出该分支已更改并进行构建。

但是,当存在对非功能分支的提交(例如,合并以开发或控制)时,位桶仍会触发作业。任何功能分支都没有更改,因此它只是再次构建了上一个构建的功能分支。

有办法控制吗?


问题答案:

经过研究,我终于找到了一个好的解决方案:

  • 在您的Jenkins上安装Bitbucket插件
  • 在您的Bitbucket存储库( 设置- >挂钩)中添加一个普通的帖子作为挂钩,并使用以下网址:

https:// YOUR.JENKINS.SERVER:端口 / bitbucket-hook /

  • 如下配置您的Jenkins项目:
    • 构建触发器,将更改推送到BitBucket时 启用 构建
    • 在“ 代码管理”下, 选择“ GIT” ;输入您的凭据并定义 要构建的分支 (例如 * feature /

这样,我就有了三个构建项目,一个用于所有功能,一个用于开发,一个用于发布分支。



 类似资料:
  • 我有一个Jenkins管道作业(不是多分支管道),管道内的逻辑之一是,当gitlab scm上有一个合并请求时,我想基于触发此生成的合并请求的源分支构建一些东西。 我的问题是,在Jenkinsfile中,我如何动态地获取这个源分支,签出代码,并创建一个工作区,以便在这个分支上运行构建?

  • 问题内容: 标题大多是这样说的。如何从远程git存储库触发Jenkins多分支管道项目构建? “ Trigger远程构建”构建触发器选项似乎不起作用,因为没有保存您设置的令牌。 问题答案: 目前(Jenkins 2.22),“触发触发器远程构建”构建触发选项在多分支管道作业配置中可见,但不起作用(如果您检查并指定了令牌,则无论如何保存后都会重置)。根据这个,这是故意的触发器不能确定,但一个错误,它

  • 问题内容: 我希望根据我的构建触发方式向我的Jenkinsfile添加一个条件阶段。目前,我们的设置是通过以下方式触发的: 分支索引中获取的git repo更改 用户使用用户界面中的“立即构建”按钮手动触发构建。 有什么方法可以运行不同的流水线步骤,具体取决于其中哪些操作触发了构建? 问题答案: 以下代码可以确定用户是否已启动管道或计时器/其他触发器:

  • 我正在努力在将提交添加到GitHub上的特定分支时触发Jenkins Pipeline作业。 我在詹金斯工作选项上没有看到合适的构建触发器,就像詹金斯自由式工作一样。 如何将Jenkins管道作业设置为在使用新提交更新分支时触发? 到目前为止,我还没有找到这个场景的明确答案,只有在提交到master时触发Jenkins管道作业,只有关于多分支作业的答案。 任何关于这个问题的帮助将不胜感激!

  • 问题内容: 我们有一个带有外部子模块的git存储库。子模块更改时,我们必须触发构建。您能否建议我们如何使用xtrigger插件轮询子模块上的更改。使用shell脚本或监视文件还是其他更好? 有关我们的构建流程的更多信息。第1步。使用子模块步骤2克隆根存储库。为每个子模块步骤#2.1(在子模块中)执行作业。切换到正确的分支(例如,主)步骤#2.1(在子模块中)。拉取子模块的最新资源 现在,如果有人提

  • 我希望在我的Jenkinsfile中添加一个条件阶段,该阶段根据构建的触发方式运行。目前,我们设置为构建由以下方式触发: 对 git 存储库的更改,这些更改是在分支索引中选取的 用户使用 UI 中的“立即生成”按钮手动触发生成。 是否有任何方法可以根据这些操作中的哪些操作触发了构建来运行不同的管道步骤?