触发 jenkins 建立在使用多分支管道创建标签的基础上

trigger jenkins build on tag creation with multibranch pipeline

我在 my Jenkinsfile 中有一个阶段,用于从与标签名称过滤器匹配的标签构建:

      stage('Build Release from Tag') {
        when {
          tag '*RELEASE'
        }

为了让标签被发现,我必须在 Branch sources > GitHub 下添加标签发现和标签名称正则表达式的匹配项以及我的管道:

管道确实发现了我推送的与过滤器匹配的标签。如果我点击一个 运行 构建它,那么它会 运行 构建阶段匹配标签条件。但我期待,based on my interpretation of a blogpost,构建会像分支构建一样自动启动。

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

    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

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

我应该说我正在使用 Jenkins-X。据我所知,这是一个 Jenkins 问题,与 Jenkins-X 的任何特定问题无关,但我可能会忽略一些东西。

如果管道应该在标签创建时自动触发(Jenkins 似乎支持 but I'm not 100% sure)那么我想知道我可以添加什么额外的配置来自动触发构建?

我只需要阅读 https://issues.jenkins-ci.org/browse/JENKINS-47496 more closely. Tags aren't built automatically by default. You have to install the Basic Branch Build Strategies plugin 并激活管道标签的构建。我这样做了,现在它确实自动构建了标签。

尽管安装了“Basic Branch Build Strategies plugin”插件并设置了构建策略和行为以发现和构建标签,但我还是有类似的情况。问题最终是我标记的提交早于默认的最大期限 7 天。显然,这种情况下的“年龄”与提交有关,而不是标签创建的时间。