先前曾问过一个有关如何覆盖环境指令中定义的变量的问题,看来这是不可能的。
我想在一个阶段中设置一个变量,并使其可用于其他阶段。在声明性管道中,似乎唯一的方法是在script {}块中。
例如,我需要在结帐后设置一些变量。因此,在结帐阶段结束时,我有一个script {}块来设置这些var,并且可以在其他阶段访问它们。
这可行,但感觉不对。并且出于可读性考虑,我更愿意在管道的顶部声明这些变量并覆盖它们。因此,这意味着在脚本{}块的开头具有一个“设置变量”阶段,该脚本仅定义了vars- thats丑陋。
我很确定我在这里缺少明显的功能。声明性管道是否具有全局变量功能,或者我必须使用脚本{}
就像@mkobit所说的那样,您可以在管道块之外将变量定义为全局级别。你有尝试过吗?
def my_var pipeline { agent any stages { stage('Example') { steps { my_var = 'value1' } } stage('Example2') { steps { printl(my_var) } } } }