在 Ant Bamboo 构建中使用 Jira 或默认项目版本

Posted

技术标签:

【中文标题】在 Ant Bamboo 构建中使用 Jira 或默认项目版本【英文标题】:Using Jira or default project version in Ant Bamboo build 【发布时间】:2015-12-21 15:10:33 【问题描述】:

我要在我们公司的 Jira-Bamboo-Bitbucket 设置中完成以下任务。

我们希望 Jira 触发 Bamboo 构建并为项目分配正确的版本号。

我们使用 Ant 来执行构建。

目前,Bamboo 通过构建计划中的变量来管理项目版本控制。

为了从 Bamboo 或 Eclipse 运行我的构建脚本,我执行了以下操作

<input addproperty="project.version" message="Input current version or use arguments" />

----
<jar compress="true" destfile="build/publish/$project.name-$project.version.jar">

上面几行的意思是,我可以将-Dproject.version=$bamboo.projectVersion 作为Ant 参数传递,也可以让Ant 询问要构建哪个版本号。如果我从 Eclipse 运行构建,我要么键入版本号,要么对本地构建使用传统的版本控制。

现在我想提前一步使用 Jira。 我知道 Jira 可以覆盖 Bamboo 中的计划变量,并且它有一个非常方便的 UI。但是我的老板要求使用内置的$jira.version 变量以避免指示人们覆盖变量。

所以我想:这个想法应该是要么选择 Jira 提供的版本号,要么使用 Bamboo 配置的版本号,或者最终询问用户。

我最终得到了在我的本地 Eclipse 环境中工作的以下代码

    <condition property="version" value="$jira.version" if:set="jira.version">
        <isset property="jira.version" />
    </condition>
    <condition property="version" value="$project.version" if:set="project.version">
        <isset property="project.version" />
    </condition>
    <input addproperty="version" message="Input current version or use arguments" />

我尝试了一些组合或运行配置,它们都符合我的要求。

渴望在 Bamboo 中进行测试,我编辑了构建脚本以通过项目和 Jira 版本

Target
"2 - jar" -Dproject.version="$bamboo.project.version.$bamboo.buildNumber" -Djira.version="$jira.version" -Dbuild.number="$bamboo.buildNumber"

遗憾的是,当我尝试从独立和 Jira 触发器运行计划时,我收到了 angry Chuck... 嗯... Bamboo 表示出了点问题

/usr/share/ant/bin/ant: line 336: -Djira.version=$jira.version: bad substitution

Ant 似乎可以接受除 Jira 之外的任何变量。如何让 Ant 使用 Jira 指定的版本号?或者,更一般地说,Jira 指定的属性?

【问题讨论】:

【参考方案1】:

似乎我理解 Jira 变量替换的错误

错了

-Djira.version="$jira.version"

正确

-Djira.version="$bamboo.jira.version"

Bamboo 实际上将 所有 变量置于其范围内。无论是 Jira 注入还是项目控制。

解决方案的另一部分是在构建计划中定义一个默认变量 jira.version 以避免错误替换错误。

这意味着如果我从 Bamboo 手动运行构建(例如,测试最近的提交),那么 -Dproject.version 将进入 version,但如果 Bamboo 由 Jira 触发,那么 -Djira.version 将具有优先权

【讨论】:

以上是关于在 Ant Bamboo 构建中使用 Jira 或默认项目版本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jira 中为 Bamboo 上的失败构建自动创建缺陷?

列出 Bamboo 执行的 Jira 项目的所有构建

Bamboo 可以在 JIRA 中更改票证的状态吗

JIRA 更新时的 Bamboo 触发器,反之亦然

Bamboo 卡在验证 Jira 服务器

集成使用 svn、Jira 和 Bamboo 的任何最佳实践? [关闭]