遇到一个问题,起因是创建了一个Jenkins Text凭证,想在Pipeline中使用
通过查阅资料发现可以通过如下方式获得凭证
pipeline {
agent any
environment {
my_account = credentials('my_credential')
}
}
我使用的是podTemplate,这种配置方式并没有生效
通过查阅podTemplate的相关配置语法,未能找到有效的信息
语法链接: https://www.jenkins.io/zh/doc/pipeline/steps/kubernetes/
已知的是可以通过envVars完成容器环境变量的传递
除使用environment自带的方法credentials()外,又找到了另一种使用方式
withCredentials([string(credentialsId: "my_credential", variable: "MY_CREDENTIAL")]) {
// do something with $FETCH_TOKEN
}
最终的使用方式如下,忽略部分pipeline
def my_credential = null
withCredentials([string(credentialsId: "my_credential", variable: "MY_CREDENTIAL")]) {
my_credential = "$MY_CREDENTIAL"
}
podTemplate(
envVars: [
envVar(key: 'MY_CREDENTIAL', value: my_credential)
]
)
自己瞎研究的方式,最终实测该方案可行,如果使用错误或有其他更好的使用方式,希望指出修改