【发布时间】:2016-05-23 18:35:45
【问题描述】:
我一直在修补 Bluemix 的构建和部署阶段以跟踪构建。
很简单的问题,我如何将构建的内部版本号发送到 IBM Bluemix 中构建和部署的部署阶段?
我已尝试使用 $BUILD_NUMBER 详细 here 但这在部署阶段对我来说无法正常工作
我会告诉你发生了什么..
构建阶段
在构建阶段,我修改了我的 Maven 项目的 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 阶段,$BUILD_NUMBER 属性指的是 Build 阶段运行的次数。
在 Deploy 阶段,$BUILD_NUMBER 属性是指运行 Deploy 阶段的次数。
虽然名称 $BUILD_NUMBER 似乎具有误导性,但在重新阅读 Bluemix Environment Variables 文档时,它指出此 ID 是对阶段的增量,而不是对构建数量的增量。
流水线 UI 中显示的增量阶段 ID。
在这种情况下,我现在明白为什么 $BUILD_NUMBER 会给我 “错误” 结果,但我仍然不知道如何在 Deploy 阶段检索内部版本号。
有没有办法在一个阶段设置变量或属性以在下一个阶段访问?
【问题讨论】:
标签: git maven deployment build ibm-cloud