已上载项目的图像:“Jenkins”必威国际有限公司
  1. 必威国际有限公司
  2. 必威国际有限公司詹金斯- 66651

GIT_BRANCH和GIT_REVISION的管道令牌宏展开失败

    XML 可打印

    细节

    • 类型: 错误
    • 状态: Closed
      The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">关闭
      查看工作流
    • 优先: 少数的
    • 解决方法: 固定的
    • 标签:
      没有一个
    • 环境:
      令牌宏插件266.v44a80cf277fd
      Git插件4.8.2
    • 类似的问题:
    • 发布:
      4.10.0

      描述

      令牌宏插件提供了一个管道任务,tm它可以扩展令牌宏。对于BUILD_NUMBER令牌,但对GIT_BRANCH代币

      工作示例

      节点{阶段(“工作示例”){回声(“构建号值为”+商标(“${BUILD_NUMBER}”))回音(“构建号长度是”+商标(“$ {# BUILD_NUMBER}”))回音('Build number第一个字符是'+商标(“$ {BUILD_NUMBER: 0:1}”)}}

      输出列出了构建编号、构建编号字符串的长度和构建编号的第一个字符。这些都是很好的结果,如令牌宏插件文档中所述。

      失败的例子

      节点{阶段(的失败的例子){git“https:/ / github.co必威国际有限公司m/jenkinsci/git-client-plugin.git”回音('Git branch value is '+商标(“$ {GIT_BRANCH}”))回音(Git分支长度为+商标(“$ {# GIT_BRANCH}”))回音(Git分支的第一个字符是+商标(“${GIT_分支:0:1}”)}}

      失败的输出是'GIT_BRANCH在此上下文中不受支持'。

      我没有发现任何语法允许GIT_BRANCH令牌宏由tm管道步骤。

        附件

          活动

          隐藏
          康卡勒尼米塔洛添加了一条评论-

          我没有测试,但也许你可以使用EnvironmentVariableMacro对于这个。

          但是,您也可以使用env。GIT_BRANCH,避免tm管道步骤,除非您需要在那里实现的转换。

          显示
          康卡勒尼米塔洛添加了一条评论-我没有测试,但也许你可以使用EnvironmentVariableMacro。但是,您也可以只使用env。GIT_BRANCH,避免tm管道步骤,除非您需要在那里实现的转换。
          隐藏
          马奎特马克·韦特添加了一条评论--编辑

          这是个好建议卡勒尼米塔洛.我没有试过env。GIT_BRANCH

          我之所以报告这个问题,只是因为我惊讶地发现对管道的令牌宏支持(一直学习新事物),然后惊讶地发现它没有像我预期的那样使用GIT_分支令牌宏。你完全正确,我没有真正的需求tm的一步。我正在探索它,同时考虑是否应该在git插件文档中更好地记录令牌宏。当我发现tm任务,我认为它可以帮助我创建一个管道测试来验证git插件中的令牌宏行为。这不是必需的。

          显示
          马奎特马克·韦特添加了一条评论--编辑这是一个很好的建议Kalle Niemitalo。我没有尝试env.GIT_分支。我报告这个问题只是因为我惊讶地发现对管道的令牌宏支持(一直学习新事物)然后,当GIT_BRANCH token宏没有像我预期的那样工作时,我很惊讶。你完全正确,我并不真正需要tm步骤。我正在探索它,同时考虑是否应该在GIT插件文档中更好地记录token宏。当我发现tm任务时,我认为它可以帮助我p我创建一个管道测试来验证git插件中的令牌宏行为。这不是必需的。
          隐藏
          康卡勒尼米塔洛添加了一条评论--编辑

          中实现了BUILD_NUMBER令牌宏BuildNumberMacro.java.我认为,通常不能期望一个作为全局变量或环境变量可用的值也直接作为令牌宏可用。相反,你可以从EnvironmentVariableMacro中使用ENV语法,或者在git-plugin中实现TokenMacro扩展点。

          显示
          康卡勒尼米塔洛添加了一条评论--编辑BUILD_NUMBER令牌宏在BuildNumberMacro.java中实现。我认为,通常不能期望一个作为全局变量或环境变量可用的值也直接作为令牌宏可用。相反,你可以从EnvironmentVariableMacro中使用ENV语法,或者在git-plugin中实现TokenMacro扩展点。
          隐藏
          马奎特马克·韦特添加了一条评论-

          感谢提醒,令牌宏通常并不适用于所有环境变量。

          我相信问题报告中引用的GIT_分支示例是一个令牌宏。它适用于自由式作业,我使用它更改自由式作业的构建名称,以包括构建编号和缩短的分支名称。在我的自由式工作中使用BUILD_NUMBER的相同技术也适用于该自由式工作中的GIT_BRANCH。

          的文档https://plugins.必威国际有限公司jenkins.io/token-macro/参考GIT_修订版。它与GIT_分支具有相同的行为。

          显示
          马奎特马克·韦特添加了一条评论-感谢提醒,令牌宏通常并不适用于所有环境变量。我相信问题报告中引用的GIT_分支示例是一个令牌宏。它适用于自由式作业,我使用它更改自由式作业的构建名称,以包括构建编号和缩短的分支名称。在我的自由式工作中使用BUILD_NUMBER的相同技术也适用于该自由式工作中的GIT_BRANCH。https://plugins.jenkins.io/t必威国际有限公司oken-macro/上的文档指的是GIT_REVISION。它具有与GIT_BRANCH相同的行为。
          隐藏
          康卡勒尼米塔洛添加了一条评论--编辑

          我知道,你有GitBranchTokenMacro.java在git-plugin。调用BuildData.getLastBuiltRevision()修订版.getBranchs().添加了GIT_BRANCH环境变量在GitSCM.checkout中,它还将BuildData添加到Run中。但是,我不确定这两个GIT_BRANCH实现是否彼此一致。

          • GitSCM。checkout期望在运行中有很多BuildData实例,但是GitBranchTokenMacro只使用一个实例。它选对了吗?
          • 如果新的构建已经有一个“类似的”BuildData,那么GitSCM。签出不会添加一个新的。现有的BuildData中的Revision是否缺少分支列表?因为Revision.equals(对象)不可比this.branchesBuildData.similarTo仍然返回true。

          (我正在一部没有Java IDE的手机上查看这些。)

          显示
          康卡勒尼米塔洛添加了一条评论--编辑我明白了,在git插件中有GitBranchTokenMacro.java,它调用BuildData.getLastBuiltRevision()和Revision.getBranchs()。GIT_BRANCH环境变量添加到GitSCM.checkout中,这也会将BuildData添加到运行中。但是,我不确定这两个GIT_BRANCH实现是否彼此一致。GitSCM.checkout预期运行中可能有许多BuildData实例,但GitBranchTokenMacro只使用一个实例。它是否选择了正确的one?如果新版本已经有“相似”的BuildData,那么GitSCM.checkout不会添加新的BuildData。现有BuildData中的修订版可能缺少分支列表吗?因为Revision.equals(Object)不会比较this.branchs,BuildData.similato仍然会返回true。(我在没有Java IDE的手机上查看这些。)
          显示
          slide_o_mix亚历克斯·厄尔添加了一条评论-参见https://github.com/je必威国际有限公司nkinsci/git-plugin/pull/1165

            受让人:
            slide_o_mix亚历克斯·厄尔
            记者:
            马奎特马克·韦特
            投票:
            0 投票支持这个问题
            观察人士:
            3. 开始关注这个问题吧

              日期

              创建:
              更新:
              断然的: