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

如何知道哪个 git 分支触发了 jenkins 作业

彭嘉赐
2023-03-14

我有一个管道Jenkins作业,它按预期工作,配置了“GitHub hook trigger for GITScm polling”选项,以便在任何推送到git存储库时自动构建。

我已经将这个Jenkins URL与多个git回购挂钩,比如< code>repo-A、< code>repo-B、< code>repo-B。< br> Jenkins作业在任何代码推送至这些回购时自动触发。

但是我想知道哪个存储库触发了Jenkins作业,因为它被配置为Jenkins级别的多个git存储库。非常感谢这方面的任何帮助。

共有2个答案

马阳晖
2023-03-14

您可以获取 GIT 插件变量作为步骤签出的返回值

即:

commit = checkout scm
println commit.GIT_URL

PS:你的标题应该是“如何知道哪个git库触发了jenkins作业”。事实上,为了获取分支的名称,我只需获取< code>env的值。BRANCH_NAME

尹小云
2023-03-14

以下是我在Jenkins的错误跟踪器中找到的一个示例(示例阶段),这是我的管道中的工作原理:

stage("checkout") {
  script {
    def git_params = checkout(...)
    println(git_params)
    env.REPO = git_params["GIT_URL"]
  }
}

< code>git_params还包括:< code>GIT_AUTHOR_EMAIL,< code>GIT_AUTHOR_NAME,< code>GIT_BRANCH,< code>GIT_COMMITTER_EMAIL,< code>GIT_COMMITTER_NAME,< code>GIT_PREVIOUS_COMMIT,< code > GIT _ PREVIOUS _ SUCCESSFUL _ COMMIT 。

 类似资料:
  • 问题内容: 我希望我的Jenkins多分支管道工作避免触发自身。作业之所以提交,是因为它将递增版本文件并将其检入源代码管理,这将导致无限循环。 在常规工作中,我可以按照以下说明操作来避免这种循环(尽管这不是最干净的方法)。 这些说明不适用于多分支管道(没有“忽略某些用户的提交”选项)。Jenkins多分支管道中是否有任何方法可以防止自我触发的提交? 问题答案: 如果使用GIT,一种解决方法: 更改

  • 我目前设置了一个 Jenkins 多分支管道作业,该作业基于 Gitlab 服务器上托管的 Git 存储库。Jenkins 可以读取存储库中的分支,并为存储库中的每个分支创建一个作业。但是我不知道如何在Gitlab中使用webhook触发作业。 我的问题是: > < li> 如何从Gitlab服务器触发在Jenkins中创建新的分支作业?我看不到一个新分支的webhook被推。 如何触发单个分支的

  • 是否可以从另一个作业触发Jenkins多分支管道的立即扫描操作?我在将旧版本的Gitlab与Jenkins中的管道作业集成时遇到了某些问题,并遇到了这样的解决方法。 或者,现在可以使用notifyCommit web钩子触发扫描多分支管道吗? 这样做的目的是每当Git存储库中发生更改时扫描多分支管道,以便在这样的更改后检测到新的分支。另一个我无法以其他方式实现的目的(除了对我来说非常邪恶的每个分支

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

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

  • 我不确定我问这个问题的方式是否正确。当我触发多分支管道作业并在Jenkinsfile中执行“checkout scm”时,它是签出pull请求还是主pull请求?