我正在尝试获得一个如下所示的声明性管道:
pipeline {
environment {
ENV1 = 'default'
ENV2 = 'default also'
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我希望能够根据任意条件覆盖ENV1或ENV2的值.我目前的需求只是基于它的分支,但我可以想象更复杂的条件.
有没有理智的方法来实现这个?我在网上看到了一些例子:
stages {
stage('Set environment') {
steps {
script {
ENV1 = 'new1'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我相信这不是设置实际的环境变量,而是设置一个局部变量,它覆盖了以后对ENV1的调用.问题是,我需要这些环境变量由nodejs脚本读取,而那些需要是真正的机器环境变量.
有没有办法在jenkinsfile中将环境变量设置为动态?