我需要GitVersion.exe
在我的 Jenkins 管道中获取变量。
GitVersion文档给出了如何做到这一点的提示。本质上调用gitversion /output buildserver
.
此调用确实将变量添加到当前步骤,并且一旦步骤完成,它们就会丢失。set
我可以显示在同一 bat 执行中组合命令时执行此调用。第二个set
显示变量已从环境中消失。
bat 'nuget install GitVersion.CommandLine -OutputDirectory c:/packages -Version 3.6.5'
bat 'c:/packages/GitVersion.CommandLine.3.6.5/tools/GitVersion.exe /output buildserver && set'
bat 'set'
GitVersion 的文档知道这一点并建议使用EnvInject。安装插件并执行相同的管道并没有改变结果。我读到插件不是为管道制作的,因此可能与它有关。
管道支持environment的语法。
按照该语法,我可以在管道顶部设置静态变量,如下所示:
environment {
ASuperVariable = 'MySuperVariable'
}
我需要的是组合这些调用,以便我可以将运行时变量添加到 Jenkinsfile pupeline。
environment {
bat 'gitversion /output buildserver'
}
现在显然上面的调用甚至语法都不正确。有没有办法标记一个部分,以便包含的环境更改可用于其他步骤?
编辑:这仍然没有解决。目前我需要创建一个批处理脚本并将该工具作为参数传递给它。在批处理中,我可以调用该工具以添加到批处理脚本的环境中,并在批处理运行时使用它。如果流程在所有多行上保持相同,则 Jenkins 文件中的多行批处理可能是一种解决方案。