我一直在修补Bluemix'构建和部署阶段以跟踪构建。
简单问题,我如何获得发送到Build& Deploy部署阶段的构建版本号?在IBM Bluemix中部署?
我尝试使用$ BUILD_NUMBER详细here,但在部署阶段我没有正常使用
我会告诉你发生了什么......
构建阶段
在构建阶段,我修改了Maven Project的POM文件,以设置版本以匹配构建。
echo 'Changing POM Version'
mvn --batch-mode release:update-versions -DdevelopmentVersion=0.0.${BUILD_NUMBER}-SNAPSHOT
我知道这是有效的,因为我稍后会使用它来标记我的git存储库,并且POM和标记都显示正确的内部版本号
这也意味着构建阶段产生的jar是StudyPlanner-0.0.41-SNAPSHOT.jar
部署阶段
在检索部署阶段的jar文件时尝试使用相同的BUILD_NUMBER时会出现问题。
cf push "${CF_APP}" -p StudyPlanner-0.0.${BUILD_NUMBER}-SNAPSHOT.jar -b java_buildpack
舞台失败我收到以下错误:
FAILED
Error uploading application.
lstat /home/pipeline/40d5622e-05a8-4d9f-a6ca-f8879bf48435/StudyPlanner-0.0.28-SNAPSHOT.jar: no such file or directory
正如您所看到的,部署阶段正在尝试检索0.0。 28 ,而不是0.0。 41 ,因为它应该在此实例中。
为什么这个$ BUILD_NUMBER正在获取一个旧数字,或者更好地获得在部署阶段获得数字的任何指导都将非常感激。
非常感谢,
斯科特。
---------------------更新---------------------
我已尝试再运行一次以查看是否可以找到任何模式,并找到以下内容:
在构建阶段,$ BUILD_NUMBER属性指的是构建阶段的运行次数。
在部署阶段,$ BUILD_NUMBER属性指的是部署阶段已运行的次数。
虽然名称$ BUILD_NUMBER似乎有误导性,但在重新阅读Bluemix Environment Variables文档时,它指出此ID是阶段的增量,而不是构建的数量。
管道UI中显示的增量阶段 ID。
在这种情况下,我现在明白为什么$ BUILD_NUMBER正在给我"错误" 结果,但我仍然不知道如何实现检索内部版本号在部署阶段。
有没有办法在一个阶段内设置变量或属性以便在下一个阶段进行访问?
答案 0 :(得分:1)
您可以找到可用的环境变量列表here。 $ BUILD_NUMBER有点令人困惑,它对应于当前正在运行的作业的编号。如果您想要用作输入的构建编号,则应使用$ IDS_VERSION。它不在上面提到的文档中,但它将是您想要的数字。我将提交拉取请求以更新文档。