我正在尝试使用环境变量来配置我的Jenkins代理,如下所示:
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${env.TEST}"
...
但是${env.TEST}
的出现形式为null
。使用${env.BUILD_NUMBER}
可以按预期工作,因此代理似乎无权访问管道中定义的环境变量。
有什么办法可以使它正常工作吗?
答案 0 :(得分:0)
您基本上正确。 env.VALUE用于特定的用户环境变量(例如,如果我按照AMI或其他方式在设置了KUBECONFIG的代理环境中运行jenkins,则将其视为env.KUBECONFIG)。这很令人困惑,但是通常在库中,您按以下方式定义全局环境变量:
env.MY_VALUE = "some value"
引用环境值时,它是您要检查的实际用户环境变量。对于您在环境闭包中设置的值,只需按MY_VALUE进行调用即可:
pipeline {
environment {
TEST = "test"
}
agent {
kubernetes {
label 'kubernetes'
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
metadata:
labels:
name: "${TEST}"
...