【问题标题】:Bluemix Retrieving Build Number in Deploy StageBluemix 在部署阶段检索内部版本号
【发布时间】: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

为了证明正在发送到舞台的是构建 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


    【解决方案1】:

    您可以找到可用的环境变量列表here。 $BUILD_NUMBER 有点令人困惑,因为它对应于当前正在运行的作业的编号。如果您想将构建的编号用作输入,您应该使用 $IDS_VERSION。它不在上面提到的文档中,但它将是您想要的数字。我将提交拉取请求以更新文档。

    【讨论】:

    • Jenkins 又来救援了!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2020-04-07
    • 2023-03-11
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多