有没有办法使用环境变量在withCredentials块中动态传递Jenkins管道中的credentialsId?
目前这有效:
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: 'my-aws-credentials',
ACCESS_KEY: 'ACCESS_KEY', SECRET_KEY: 'SECRET_KEY']]) { }
但这不是:
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: '${AWS_CREDENTIAL_ID}',
ACCESS_KEY: 'ACCESS_KEY', SECRET_KEY: 'SECRET_KEY']]) { }
我应该补充说,构建在docker容器中运行,但其他环境变量工作正常,所以我希望这个也可以工作。
答案 0 :(得分:2)
实际上,我能够通过这样做来解决它 - >
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: env.AWS_CREDENTIAL_ID,
ACCESS_KEY: 'ACCESS_KEY', SECRET_KEY: 'SECRET_KEY']]) { }
答案 1 :(得分:0)
您可以结合使用withEnv和withCredentials并动态传递凭据。凭据必须使用凭据绑定插件在Jenkins的“全局凭据”部分中定义:
withEnv([""CREDENTIALID=pw_${<some global variable>}",]) {
withCredentials([string(credentialsId: "${CREDENTIALID}", variable: 'mypassword' )]) {
}
}
这对我有用。希望这会有所帮助!
答案 2 :(得分:0)
这里是一个如何根据环境变量a[np.isinf(a)] = 0
的值设置凭据ID的示例:
np.where(a == np.inf)[0][0]
Output:
0 # this is the index position of np.inf in array a