在Jenkins中使用参数化凭据
假设我有一些web应用的开发、qa和稳定的服务器环境,以及相应的git分支。每个环境都应该不断地整合。每个环境都有一个单独的用户名/密码对,用于发布应用程序。我想做一个Jenkins多配置(matrix)作业来发布到所有这些环境。几乎可以肯定,发布必须使用shell脚本完成 我失败的尝试包括使用Jenkins凭证和凭证绑定插件。凭据绑定提供了一种使用参数将凭据作为环境变量注入的方法。但是,动态设置此参数(例如,如果ENV==dev:CREDS=CREDS\u dev)似乎是不可能的。构建脚本发生在之后,甚至使用环境脚本插件也不起作用在Jenkins中使用参数化凭据,jenkins,Jenkins,假设我有一些web应用的开发、qa和稳定的服务器环境,以及相应的git分支。每个环境都应该不断地整合。每个环境都有一个单独的用户名/密码对,用于发布应用程序。我想做一个Jenkins多配置(matrix)作业来发布到所有这些环境。几乎可以肯定,发布必须使用shell脚本完成 我失败的尝试包括使用Jenkins凭证和凭证绑定插件。凭据绑定提供了一种使用参数将凭据作为环境变量注入的方法。但是,动态设置此参数(例如,如果ENV==dev:CREDS=CREDS\u dev)似乎是不可能的。构建脚本发生
有什么方法可以做到这一点吗?也有类似的情况,并且使用了参数化构建()的groovy脚本。在我的例子中,我有一个定义为“DEPLOY”的choice参数,它有不同的值,比如“Test”、“Release”,然后在下面的groovy脚本(经过评估的groovy脚本)中: 您应该能够在此处指定凭据或复制环境变量。之后,您可以使用以下命令在windows批处理命令中访问这些变量:
echo %DEPLOY_URL%
echo %DEPLOY_STORAGE%
我还定义了另一个选项参数“Deploy.Branch”,其值为“dev”和“master”。并将其用作要生成的分支的参数,该值设置为(如果要基于参数动态指定分支):
希望这能有所帮助。也有类似的情况,并且使用了参数化构建()的groovy脚本。在我的例子中,我有一个定义为“DEPLOY”的choice参数,它有不同的值,比如“Test”、“Release”,然后在下面的groovy脚本(经过评估的groovy脚本)中: 您应该能够在此处指定凭据或复制环境变量。之后,您可以使用以下命令在windows批处理命令中访问这些变量:
echo %DEPLOY_URL%
echo %DEPLOY_STORAGE%
我还定义了另一个选项参数“Deploy.Branch”,其值为“dev”和“master”。并将其用作要生成的分支的参数,该值设置为(如果要基于参数动态指定分支):
希望这能有所帮助。以下是我最后做的事情。这是一种解决方法,我认为Jenkins的设计有缺陷或缺少用例
- 重拨我的凭据,使其具有标准ID(这在高级部分中,创建后无法设置)
- Matrix job运行一个简单的脚本,以找出什么env映射到什么creds ID,然后触发
- 执行部署的主要作业
- 重拨我的凭据,使其具有标准ID(这在高级部分中,创建后无法设置)
- Matrix job运行一个简单的脚本,以找出什么env映射到什么creds ID,然后触发
- 执行部署的主要作业
- 以下是我最后做的事情。这是一种解决方法,我认为Jenkins的设计有缺陷或缺少用例
*/${Deploy.Branch}