我正在尝试通过“构建环境”部分中的选项在 jenkins 中设置密码,该选项可在我的测试中用于获取密码并使用它。这是我在“将密码作为环境变量注入构建”中检查的选项。问题是一旦种子作业运行,我就会失去这些值。因此,种子作业运行后,我添加的值正在消失。有人遇到过这个问题吗?如何使其永久化,以便每次我可以在测试代码中检索这些密码?
问问题
21780 次
2 回答
4
运行种子作业后,对生成作业的所有手动更改都将丢失。这是 Job DSL 插件的预期行为。
要在 Job DSL 生成的作业中使用密码,请使用Credentials 插件将密码(或任何机密)存储在 Jenkins 中。然后使用Credentials Binding 插件将密码映射到作业中的环境变量。查看 Job DSL wiki 以获取示例。
于 2015-06-10T20:02:09.973 回答
1
@daspilker,@JesseGlick,非常感谢您的回复。它帮助我在 Jenkins 中编写了我的第一个配置块。提及我的行为,以便其他面临同样问题的人可能会有所帮助。
由于我们使用的是 Job DSL 1.27,因此我无法直接使用凭据绑定。因此,通过我的 .groovy 脚本创建了一个配置块并注入了所需的变量。
注意:如果您收到“未找到 credentialsId”错误,则需要从 '*****/job/config.xml 中获取 'credentialsId' 的转换值。
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
}
}
}
}
于 2015-06-19T17:06:19.180 回答