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

詹金斯通过特定标签触发构建

柴星津
2023-03-14

有人能告诉我如何设置jenkins以基于特定标记的git repo进行构建吗?我已经做了一些搜索,并试图设置一个工作来构建一个特定的标签,请参阅:Jenkins Git插件:如何构建特定的标签?但我只能从主分支获取最新的提交。

这是给詹金斯的2.54分。我在SCM下设置了以下内容。

Repo URL and Credentials
name:  ref
Refspec: +refs/tags*:refs/remotes/origin/tags/*
Branch Specifier refs/tags/jenkins-test*

我允许所有分支触发这项工作。我有一个用jenkins-test1标记的提交。0,当我从gitlab测试webhook时,它成功地启动了jenkins作业,但它从主分支提取了最新的提交,而不是标记的提交。

提前谢谢。。。

共有1个答案

方飞鸣
2023-03-14

你可以使用通用的网络钩子触发插件来做到这一点。

来自其中一个测试用例:

场景:构建应该在创建标记时触发,而不是在删除标记时触发。

Given the following generic variables are configured:
  | variable        | expression               | expressionType  | defaultValue | regexpFilter  |
  | object_kind     | $.object_kind            | JSONPath        |              |               |
  | before          | $.before                 | JSONPath        |              |               |
  | after           | $.after                  | JSONPath        |              |               |
  | ref             | $.ref                    | JSONPath        |              |               |
  | git_ssh_url     | $.repository.git_ssh_url | JSONPath        |              |               |

Given filter is configured with text: $object_kind $before $after
Given filter is configured with expression: ^tag_push\s0{40}\s.{40}$

Given received post content is:
"""
{
  "object_kind": "tag_push",
  "before": "0000000000000000000000000000000000000000",
  "after": "82b3d5ae55f7080f1e6022629cdb57bfae7cccc7",
  "ref": "refs/tags/v1.0.0",
  "repository":{
    "git_ssh_url":"git@example.com:jsmith/example.git",
  }
}
"""
Then the job is triggered
Then variables are resolved to:
  | variable         | value                                    |
  | object_kind      | tag_push                                 |
  | before           | 0000000000000000000000000000000000000000 |
  | after            | 82b3d5ae55f7080f1e6022629cdb57bfae7cccc7 |
  | ref              | refs/tags/v1.0.0                         |
  | git_ssh_url      | git@example.com:jsmith/example.git       |
 类似资料:
  • 问题内容: 我试图通过在提交钩子中使用此URL来触发我的Jenkins项目 并且没有被触发。但是,当我在Web浏览器中键入此URL时,它将触发我的构建。 当我在命令提示符下尝试时,出现错误 错误404 例外: Stacktrace: 由Winstone Servlet Engine v0.9生成。 2014年4月22日星期二10:10:10 有人可以告诉我我在做什么错吗? 问题答案: 首先,按照E

  • 我试图通过在提交钩子中使用这个URL来触发我的Jenkins项目 而且不会被触发。但当我在web浏览器中键入此URL时,它会触发我的生成。 当我在命令提示符下尝试时,出现了一个错误 错误404 谁能告诉我我做错了什么??

  • 问题内容: 我有两个工作,JobA和JobB,JobA每天的运行时间为13.00,并记录一些付款。我希望JobA触发JobB来验证付款,仅当JobA成功且JobB需要在第二天04.00运行时 任何想法如何做到这一点? BR 问题答案: 我还没找到能开箱即用的东西。当然,您可以安排要定期构建的作业,但这不是您想要的全部。 您可以尝试以下两种想法之一(我自己也没有实现)。 将JobB设置为在凌晨4点定

  • 问题内容: 在同一个SVN信息库中,我们有一个包含几个子项目的项目。例如: Jenkins是否可以在构建步骤中创建条件触发器? 我将澄清:仅在更改了SVN树的情况下,我才想执行Maven构建步骤。 例如,svn:// ip / svn / trunk / subproject1树已更改。在这种情况下,应触发整个构建。 然后,(由于svn:// ip / svn / trunk / subproje

  • 不过,我仍然希望Jenkins担任指挥,这样我们的管道对不在我们团队中的人来说就更明显了。 有很多关于从DevOps触发Jenkins的信息,但我还没有找到任何支持我们需要的东西。这可能吗?你能分享一些例子吗?

  • 我要求允许在单个从节点的单个Jenkins作业中进行并发构建。 因此,我启用了throttle concurrent build选项,并发布了我能够进行并发构建的帖子。但是,如果我给MaxNo of concurrent builds 7或大于7,那么它总是一次处理6个构建,第7个构建处于等待状态。 在这种情况下有没有限制?