Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 将密码作为环境变量注入构建_Jenkins_Jenkins Plugins_Jenkins Job Dsl - Fatal编程技术网

Jenkins 将密码作为环境变量注入构建

Jenkins 将密码作为环境变量注入构建,jenkins,jenkins-plugins,jenkins-job-dsl,Jenkins,Jenkins Plugins,Jenkins Job Dsl,我试图通过“构建环境”部分中的一个选项在jenkins中设置密码,该选项可用于我的测试中获取密码并使用它。这是我正在签入的选项“将密码作为环境变量注入构建”。问题是一旦种子作业运行,我就会丢失这些值。因此,种子作业运行后,我的附加值将消失。有人面对过这个问题吗?如何使其永久化,以便每次我可以在测试代码中检索这些PWD?运行种子作业后,对生成作业的所有手动更改都将丢失。这就是Job DSL插件的预期行为 要在作业DSL生成的作业中使用密码,请使用将密码(或任何机密)存储在Jenkins中。然后使用

我试图通过“构建环境”部分中的一个选项在jenkins中设置密码,该选项可用于我的测试中获取密码并使用它。这是我正在签入的选项“将密码作为环境变量注入构建”。问题是一旦种子作业运行,我就会丢失这些值。因此,种子作业运行后,我的附加值将消失。有人面对过这个问题吗?如何使其永久化,以便每次我可以在测试代码中检索这些PWD?

运行种子作业后,对生成作业的所有手动更改都将丢失。这就是Job DSL插件的预期行为


要在作业DSL生成的作业中使用密码,请使用将密码(或任何机密)存储在Jenkins中。然后使用将密码映射到作业中的环境变量。请查看Job DSL wiki,了解更多信息。

@daspilker,@JesseGlick,非常感谢您的回复。它帮助我在Jenkins中编写了第一个配置块。提及我的行为,对其他面临同样问题的人可能会有所帮助

因为我们使用的是Job DSL 1.27,所以我不能直接使用凭证绑定。因此,创建了一个configure块,并通过my.groovy脚本注入了所需的变量

注意:如果出现“credentialsId未找到”错误,则需要从“*****/job/config.xml”中获取“credentialsId”的转换值

static def credentialsBinding={String userNameVar、String passwordVar、String credId、wrapperContext->
def nodeBuilder=new nodeBuilder()

wrapperContext.wrapperNodes感谢您的回复daspilker。我知道我们已经安装了凭据插件。上述过程涉及在代码中保留pwd?我唯一的尝试是不在代码中保持密码打开。凭据绑定插件与凭据插件不同,并且不需要在代码中保留密码,只有he credentials ID.@JesseGlick,我们正在使用作业DSL 1.27,因此我无法使用内置凭据绑定调用。因此我尝试通过“配置”块写入它。我得到“无此类属性”异常。groovy.lang.MissingPropertyException:无此类属性:类的usernameVariable:javaposse.jobdsl.DSL.helpers.wrapper.WrapperContext at com.tgt.esv.jenkins.job.api.test.GrailsFunctionalTestJob.create_closure1_closure8(GrailsFunctionalTestJob.groovy:115)下面是我的代码,我没有得到“这样的属性”。如果(isCredentailsBinding){configure{project->project/'buildWrappers'/'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding'{credentialsId=credId usernameVariable=userNameVar passwordVariable=PasswordVar听起来你需要问一个关于作业DSL使用的新问题。
static def credentialsBinding = { String userNameVar, String passwordVar, String credId, wrapperContext ->
    def nodeBuilder = new NodeBuilder()
    wrapperContext.wrapperNodes << nodeBuilder.'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper'(plugin: "credentials-binding@1.4") {
        bindings {
            'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {
                usernameVariable userNameVar
                passwordVariable passwordVar
                credentialsId credId
            }
        }
    }
}