从Jenkins作业中标记github
我已经将时间戳存储到一个变量中,我需要使用同一个变量来标记Jenkins作业中的github。 更准确地说,在Git Publisher中,“Tag To Push”应该是什么条目? 在执行Shell命令中添加: 应用程序\u生成\u标记=$(日期+“%Y%m%d\u%H%m”) echo$APP\u BUILD\u TAG>releaseStamp从Jenkins作业中标记github,git,jenkins,Git,Jenkins,我已经将时间戳存储到一个变量中,我需要使用同一个变量来标记Jenkins作业中的github。 更准确地说,在Git Publisher中,“Tag To Push”应该是什么条目? 在执行Shell命令中添加: 应用程序\u生成\u标记=$(日期+“%Y%m%d\u%H%m”) echo$APP\u BUILD\u TAG>releaseStamp 当我输入tagtopush=$APP\u BUILD\u标记时,它会给我错误,因为它无法识别$APP\u BUILD\u标记。请建议最佳做法,以便
当我输入tagtopush=$APP\u BUILD\u标记时,它会给我错误,因为它无法识别$APP\u BUILD\u标记。请建议最佳做法,以便我可以使用我们的约定标记为YYYYMMDD_HHMM格式预计会失败,标记推入Git publisher插件允许使用环境变量。但是,您创建的变量值是一个局部变量,在该执行shell中具有作用域,并且不会传递到生成后步骤 如何解决此问题: 添加以下内容:
echo "TAG_TO_PUSH=${APP_BUILD_TAG}" > releaseStamp.txt
然后使用注入环境构建/后构建步骤并注入此文件。这将把这个变量导出到整个jenkins作业中。因此,要推送的标记也将能够使用变量值
现在在Tag to push部分中,使用以下值:
${TAG_TO_PUSH}
EnvInject插件不允许以编程方式生成标记。为了解决这个问题,我发现有必要使用EnvInject插件两次——一次在开始时,将属性/标记生成为文件,一次在SCM签出后,读取文件 以您的例子:
echo“APP\u BUILD\u TAG=$(日期+“%Y%m%d\u%H%m”)”>/path/to/stamp.txt
/path/to/stamp.txt
${APP\u BUILD\u Tag}
(这是否是最佳实践是任何人的猜测;似乎应该有一个更简单的方法,但这是我能让它工作的唯一方法。)注意,这需要@Christopher同意+1