【问题标题】:Jenkins substring environment variableJenkins 子字符串环境变量
【发布时间】:2014-08-16 10:11:01
【问题描述】:

我正在使用 Jenkins 和提供以下环境变量的 Git plugin

  • GIT_COMMIT:当前的 SHA
  • GIT_BRANCH:当前正在使用的分支的名称,例如“master”或“origin/foo”
  • GIT_PREVIOUS_COMMIT:来自同一分支的先前构建提交的 SHA(第一次构建分支的当前 SHA)
  • GIT_URL:存储库远程 URL
  • GIT_URL_N:当有超过 1 个远程时,存储库远程 URL,例如GIT_URL_1、GIT_URL_2
  • GIT_AUTHOR_EMAIL:提交者/作者电子邮件
  • GIT_COMMITTER_EMAIL:提交者/作者电子邮件

使用Version Number Plugin,我有一个${GIT_COMMIT} 变量,可以按预期读取。

问题是,它是完整的 32 (?) 字符 SHA 哈希。我想取它的一个子字符串。有没有办法在 Jenkins 中获取环境变量的子字符串?

【问题讨论】:

  • 在哪里使用?如果您将其用作脚本,则有多种方法可以提取子字符串,但这取决于您使用的脚本的语言。
  • @Slav - 我在构建配置中使用它,在Build Environment -> Create a formatted version number(来自版本号插件)下,然后是Version Number Format String 字段。我也在使用脚本,没有问题。

标签: bash jenkins environment-variables substring


【解决方案1】:

在 bash 中(我假设这是您想知道的,因为您用它标记了问题),您可以使用以下语法来做到这一点:${string:start_position:length}

你可以提取例如散列的前 8 个字符写成:

${GIT_COMMIT:0:8}

我从这里采取了这个解决方案:http://tldp.org/LDP/abs/html/string-manipulation.htm

【讨论】:

  • 非常感谢,但没有骰子...一分钟看起来不错,但后来什么也没有。还有其他想法吗?如果有帮助,请参阅我对 OP 的评论以获取更多详细信息。
  • 那么,你想用插件获取一个环境变量,并设置另一个,即第一个的子字符串?在这种情况下,这完全取决于插件本身(在 Jenkins 中没有解析环境变量的“通用方法”)。你想在哪里使用插件生成的环境变量?也许您可以跳过使用插件,直接在需要的脚本中使用上述解决方案获取GIT_COMMIT 的子字符串?
  • 好的,谢谢,我想这不是一个好的方法 - 我不需要它的脚本,现在只是项目的显示名称(“2014-06-25-fb8ce ” 什么的)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多