jenkins - 在 Jenkins 声明性管道的参数中定义凭证参数?

标签 jenkins jenkins-plugins jenkins-pipeline

我目前使用带有参数化构建的 Jenkins Delarative 管道

pipeline {
    agent any
    parameters {
        booleanParam(name: 'cleanDB',defaultValue: false,description: 'should clean db ?' )
        string(name: 'host',defaultValue: 'xyx',description: 'DB Host')
    }
    stages {
        stage('Build') {
            steps {
                sh 'mvn verify'
            }
        }
        stage('Execute') {
            steps {
                withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'CREDENTIALS', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']])
                        {
                            sh "ant " +"-Ddb.clean=${params.cleanDB} -Ddb.host=${params.host} -Ddb.userid=$USERNAME \"-Ddb.password=$PASSWORD\" "
                        }
            }
        }
    }
}

当我尝试使用参数构建时,它只提示两个参数 cleanDB,主机参数。我希望它也询问要采用哪个凭证参数。只有在参数化构建中通过 UI 显式添加时才需要。

那么我如何在参数中添加凭据参数,任何人都可以分享一个在以下语法中定义它的示例。
parameters {
        booleanParam(name: 'cleanDB',defaultValue: false,description: 'should clean db ?' )
        string(name: 'host',defaultValue: 'xyx',description: 'DB Host')
credentialParam(name: 'host',description: 'Credentials')
    }

最佳答案

而截至今天 (2017-08-29) jenkins docs仅提及可能参数的字符串和 bool 类型,还有一些 ticket回答这个问题。它说要做:

parameters {
    credentials(name: 'CredsToUse', description: 'A user to build with', defaultValue: '', credentialType: "Username with password", required: true )
} 

我刚试过,效果很好。第一次执行时它什么都不问,它只是为作业创建参数。之后它会要求提供凭据。

自然,它适用于声明式流水线语法,因此必须用“流水线”包围。

关于jenkins - 在 Jenkins 声明性管道的参数中定义凭证参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736638/

相关文章:

maven - 现在在将 Artifact 部署到存档 Maven 存储库时在 jenkins 中获得 401 未授权

Jenkins 管道工作总是试图从主人开始

ios - 如何在 jenkins 中获取 XCTAttachments

jenkins - 从正在运行的版本中读取consoleText URL仅返回前10000行

jenkins - 退出代码以设置构建不稳定 - Jenkins DSL 脚本

hudson - Jenkins 构建升级 : How do I get the build id of the build I want to promote?

Jenkins Pipeline 插件 MissingPropertyException 没有这样的属性 : node for class: groovy. lang.Binding

jenkins - Pipeline 中定义的 DynamicReferenceParameter

jenkins - 如何在 Jenkins 中禁用注入(inject)环境变量的可视化

jenkins-plugins - 谷歌容器注册和 Jenkins