首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将所有全局凭据传递给Jenkins管道

如何将所有全局凭据传递给Jenkins管道
EN

Stack Overflow用户
提问于 2020-06-24 13:33:40
回答 1查看 2.8K关注 0票数 2

这是我在堆栈溢出上发布的第一个问题,因此,万一我做了一些我知道的不正确的事情。

描述

我目前正致力于将自由式项目翻译到Jenkins中的声明管道(jenkinsfiles保存在Git中)。最初的自由式工作是触发PowerShell脚本,它需要访问配置系统中掩码密码插件部分中定义的全局名称/密码对。解决这个问题的方法是在项目本身中附加一个勾号(不幸的是,我还不允许将屏幕截图添加到帖子中,因此编辑器将屏幕上传到imgur并粘贴链接-请参见屏幕1):截图1

因此,我开始寻找这样的解决方案的可能实现的jenkinsfile,无论多么幸运。

我的问题

当从管道中触发脚本时,它会错误地指出它找不到相关的密码(powershell是指这些凭据与环境变量有关)。当从自由式项目运行时,这是很好的。我认为这是因为管道无法接触到前面提到的证书。

我试过什么

将步骤包装到以下块:

代码语言:javascript
运行
复制
wrap([$class: 'MaskPasswordsBuildWrapper']) {
    bat(batch file launching ps script)
}

然后,包含相关步骤的上述块包装为

代码语言:javascript
运行
复制
script {
    wrap(...)
}

但他们都没用。我看过其他插件,如凭据绑定插件凭据插件,但是这些插件允许每个步骤绑定/传递一个凭据,并且我需要传递Jenkins中指定的所有凭据(我可以将保存的凭据移动到Jenkins中的任何其他位置)。我看过添加环境变量:

代码语言:javascript
运行
复制
credentials('Credentials-ID')

但是问题和上面提到的插件一样。

有没有人遇到过类似的情况,知道如何允许管道访问/传递Jenkins中指定的所有凭据,而不是一次绑定/传递它们?

所有的提示都是非常欢迎的!

EN

回答 1

Stack Overflow用户

发布于 2020-06-24 20:14:20

您可以这样做,然后env变量将在整个作业中可用。您也可以定义多个env变量。

代码语言:javascript
运行
复制
environment {
        // Use credentials() to hide the environment variable's output
        MY_PERSONAL_TOKEN = credentials('Credentials-ID')
    }

stages {
  stage('Test Stage') {
        steps {
            script {
                 // do what you need to
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62556350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档