我已将Timestamp存储到变量中,我需要使用相同的变量来标记Jenkins Job中的github。 更确切地说,#34; Tag To Push"在Git Publisher中,应该是什么条目? 在Execute Shell Command中添加:
APP_BUILD_TAG = $(日期+'%Y%m%d_%H%M')
echo $ APP_BUILD_TAG> releaseStamp
当我输入Tag to Push = $ APP_BUILD_TAG时,它会给我错误,因为它无法识别$ APP_BUILD_TAG。请建议最佳做法,以便我可以使用我们的约定标记为YYYYMMDD_HHMM格式
答案 0 :(得分:0)
预计失败,标记为推送Git发布者插件允许使用环境变量。但是您创建的变量值是一个局部变量,并且在该执行shell中具有范围,并且不会传递给后构建步骤。
如何解决这个问题:
在下面添加:
echo "TAG_TO_PUSH=${APP_BUILD_TAG}" > releaseStamp.txt
然后使用注入环境构建/后期构建步骤并注入此文件。这会将此变量导出到整个jenkins作业。这样你的Tag To Push也可以使用变量值。
现在在Tag to push部分中,使用以下值:
${TAG_TO_PUSH}
答案 1 :(得分:0)
EnvInject插件无法让您以编程方式生成标签。要解决此问题,我发现有必要使用EnvInject插件两次 -在开始时一次将属性/标签生成为文件,而在SCM签出后一次使用读取文件。 / p>
使用您的示例:
echo "APP_BUILD_TAG=$(date +'%Y%m%d_%H%M')" > /path/to/stamp.txt
/path/to/stamp.txt
${APP_BUILD_TAG}
(这是否是最佳实践,这是每个人的猜测;似乎应该有一种更简单的方法,但这是我可以使它工作的唯一方法。)