我见过很多帖子,人们要求在脚本中访问Bamboo变量,但这与事实无关。
我正在如下所示的Shell Script任务中定义一个变量,然后我想在后续的maven任务中访问该变量。
#!/bin/sh
currentBuildNumber=${bamboo.buildNumber}
toSubtract=1
newVersion=$(( currentBuildNumber - toSubtract ))
echo "Value of newVersion: ${newVersion}"
这很好。但是,我有一个后续的maven 3任务,在该任务中,我尝试通过键入${newVersion}
访问以下变量来访问此变量
error 07-Jun-2019 14:12:20 Exception in thread "main" java.lang.StackOverflowError
simple 07-Jun-2019 14:12:21 Failing task since return code of [mvn --batch-mode -Djava.io.tmpdir=/tmp versions:set -DnewVersion=1.0.${newVersion}] was 1 while expected 0
基本上,我想通过使用$ {bamboo.buildNumber}并减去一些数字来自动化所构建的jar文件的版本号,这样我每次运行构建时就不必输入新的版本号
感谢您的帮助...谢谢,
编辑:我也在Atlassian论坛上发布了相同的问题...当我在那里得到答案时,我将更新此帖子... https://community.atlassian.com/t5/Bamboo-questions/Bamboo-Access-script-variable-in-subsequent-maven-task/qaq-p/1104334
答案 0 :(得分:2)
通常,我发现最好的解决方案是将结果输出到文件中,并使用“注入变量”任务将变量读入内部版本。
例如,在某些构建中,我需要一个SUFFIX变量,因此在bash脚本中,我最终会这样做
SUFFIX=suffix=-beta-my-feature
echo $SUFFIX >> .suffix.cfg
然后我可以使用“注入变量”任务来读取该文件
请确保它是一个Result
变量,并且应该能够使用${bamboo.NAMESPACE.name}
作为后缀1,它将是${bamboo.VERSION.suffix}