Jenkins - 将构建名称传递给正在构建的代码

时间:2016-05-04 03:08:09

标签: jenkins build

我定义了Jenkins作业,使用时间戳作为构建名称。我还希望能够在正在构建的代码中使用该构建名称。例如,假设我的应用程序打印了一个" startup"初始化期间的消息理想情况下,我可以以某种方式将构建名称注入此启动消息中 例如:
    申请XYZ,建立20160503-0420,正在启动......

我很好奇人们用什么样的技术来做这样的事情。

谢谢!

2 个答案:

答案 0 :(得分:0)

好吧,首先在您的代码中直接插入内部版本号,这是非常糟糕的做法。

我们创建Jenkins的debian包。 Debian软件包包含控制文件,包的某种描述,版本,依赖关系等。

在我们的repo控制文件中包含

Section: misc
Priority: optional
Package: #packagename
Version: 0.1.0+#build~#repo

如您所见,我们只修复了主要版本的软件 然后我们创建包,用#替换带有构建变量的文本

sed -i 's/#build/$(BUILD_NUMBER)/' $(FAKEROOT)/DEBIAN/control
sed -i 's/#repo/$(REPONAME)/' $(FAKEROOT)/DEBIAN/control
sed -i 's/#packagename/$(PROJECTNAME)/' $(FAKEROOT)/DEBIAN/control

然后我们发布,部署,发送电子邮件,完成所有Jenkins魔术。 我认为你可以构建二进制文件并将其分发

当然,如果您想将此更改添加到您的存储库中,您可以使用Git publisher或其他源管理系统,但再次告诉您这是不好的做法。

答案 1 :(得分:0)

我们在Jenkins中使用powershell插件,这就是我们编写工作的方式......

Write-Host Build id $ env:BUILD_NUMBER从Get-Date

开始

有关更多构建参数,请参阅以下URL

https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables