将变量从工作空间传递给jenkins

时间:2018-05-23 08:51:28

标签: jenkins jenkins-plugins jenkins-github-plugin

我正在尝试在Jenkins上建立构建。构建成功后,我使用Post build Action Git Publisher推送构建的标记。

直到现在,这些已经手动完成,标签被赋予版本号A.B.C.D(来自文本文件)。现在我们使用Jenkins,D来自$ BUILD_NUMBER Jenkins变量,但A.B.C存储在工作区内的文本文件中。有没有办法可以将A.B.C传递给git发布者?或者必须在脚本中执行所有git命令?

使用Jenkins v1.624。目前无法更新(在人们建议之前)

1 个答案:

答案 0 :(得分:0)

不完全确定这是否适用于Post build Action Git Publisher(因为我不使用它),我只能测试它:

Jenkins ver。 2.32.3
EnvInject +插件 1.93.1
Groovy +插件 1.30

基于'Joerg S'在这篇文章中提出的建议:

Creating a Jenkins environment variable using Groovy

添加“执行Groovy脚本”构建步骤以读入包含A.B.C的工作区文件(name:value)并将其转换为基于java的属性文件 - def custom_tag = new File('tmpfile').text.trim() File propFile = new File('properties.text') propFile.write "CUSTOM_TAG:"+custom_tag ):

Properties File Path

然后添加“注入环境变量”构建步骤以读取新文件,因此properties.text${CUSTOM_TAG}

然后,您应该可以在post build git publish中使用db.ExecuteCommand( "UPDATE ForumUserStats SET Posts += {0} WHERE UserID = {1} AND ForumID = {2}", -1, post.AuthorID, post.Forum.ID ); 作为 TAG ,因为它现在是一个环境变量。

如果这不起作用,请查看上面链接中的groovy代码,它可能会提供其他内容。