我有一个管道,它将一些凭据作为参数。
credentials(name: 'API_TOKEN', description: 'API Access Token', defaultValue: null, credentialType: "org.jenkinsci.plugins.plaincredentials.impl.StringCredentialsImpl")
稍后在环境部分中,我将像这样使用它:
pipeline {
agent any
environment {
MY_TOKEN = credentials('API_TOKEN')
}
稍后我在管道中引用MY_TOKEN。
我的问题是,如果Jenkins在git提交后自动启动这个作业(没有传递任何凭证),或者如果你决定在没有凭证的情况下运行一个作业,这个作业就无法启动(即时失败)。我尝试将defaultValue设置为“dummy”,但credentials('dummy')
抛出类似于credentials(null)
的错误。
我试图给予在环境部分设置additionall变量,并直接引用API_TOKEN,但它没有帮助,因为在这种情况下,手动给定的参数没有得到尊重,而是使用默认值(null或'dummy')。
如何在管道中正确实现可选凭证?
1条答案
按热度按时间stszievb1#
根据这里的Jenkins文档,我没有看到
credentials
作为参数的选项。但是,从Jenkins GUI编辑管道配置时,credentials
参数确实可用。查看GUI中凭据参数的选项,我发现它引用了Jenkins Credentials Provider中存储的凭据。知道了这一点,我的建议是添加一个字符串参数,它引用存储的凭证的凭证ID。就像这样:
然后,在你的流水线逻辑中,处理一个空字符串作为你的
TOKEN_CRED_ID
的事件,如下所示: