触发jenkins使用多分支管道在标签创建上进行构建

Rya*_*son 3 jenkins jenkins-pipeline jenkins-x

我在Jenkinsfile中有一个阶段,可根据与标签名称过滤器匹配的标签进行构建:

      stage('Build Release from Tag') {
        when {
          tag '*RELEASE'
        }
Run Code Online (Sandbox Code Playgroud)

为了使标签被发现,我必须添加标签发现和标签名称regex的匹配项,并添加到我的管道下Branch sources > GitHub

在此处输入图片说明

管道会发现我推送的与过滤器匹配的标签。如果我单击一个为其运行构建,则它会运行与条件标签匹配的构建阶段。但是我期望,根据对博客文章的解释,构建会像分支的构建一样自动开始。

在扫描存储库日志中,我看到如下输出:

    Checking tag TEST0.1.3.RELEASE
      ‘Jenkinsfile’ found
    Met criteria
Changes detected: TEST0.1.3.RELEASE (null ? 4aea4ec43c1daf8290ea438ce0bf1a14a6afbc46)
No automatic builds for TEST0.1.3.RELEASE
Run Code Online (Sandbox Code Playgroud)

我还可以在repository events日志中看到输出,例如Received Push event for tag TEST.0.1.8.RELEASE in repository ryandawsonuk/activiti-build CREATED eventJenkins知道正在创建的标签。(我想我已经知道了,因为它会发现它们并在UI中显示它们,除非我手动触发构建,否则它不会构建它们。)

我应该说我正在使用Jenkins-X。据我所知,这是一个詹金斯问题,与Jenkins-X无关,但我可能忽略了某些事情。

如果管道应该在创建标签时自动触发(似乎Jenkins支持该操作,但我不确定100%肯定),那么我想知道可以添加哪些其他配置来自动触发构建?

Rya*_*son 6

我只需要更仔细地阅读https://issues.jenkins-ci.org/browse/JENKINS-47496。默认情况下,标记不会自动构建。您必须安装Basic Branch Build Strategies plugin并激活管道的标记构建。我这样做了,现在它会自动构建标签。

  • 这个插件已经 5 年没有更新了:https://github.com/jenkinsci/basic-branch-build-strategies-plugin。这仍然是触发标签发现构建的唯一方法吗? (2认同)