我有一个项目,我需要根据用户选择的选择参数设置环境变量。每个项目都有一个主题项目依赖项。我想让用户选择项目,然后从属性文件加载主题名称。就像是
proj1=theme1
proj2=theme2
proj3=theme3
Run Code Online (Sandbox Code Playgroud)
如果用户proj1从PROJECT_NAME选择参数中选择,我想自动设置THEME_NAME为theme1. 解决这个问题的最佳方法是什么?
每当添加新项目时,我都不想修改 Jenkins 作业配置。相反,我想将映射放在一个文件中,这样我就可以将它放在版本控制中。
小智 8
有时,能够通过 Jenkins 设置参数,然后将这些参数作为 Jenkins env 传递,这真是太好了。变量。密码之类的东西可以在参数中受到保护,但不能通过环境注入器插件进行保护。
执行此操作的示例:
environment {
AWS_ECR_ACCOUNT_ID="${params.AWS_ECR_ACCOUNT_ID}"
AWS_ACCESS_KEY_ID="${params.AWS_ACCESS_KEY_ID}"
AWS_SECRET_ACCESS_KEY="${params.AWS_SECRET_ACCESS_KEY}"
AWS_SESSION_TOKEN="${params.AWS_SESSION_TOKEN}"
}
parameters {
string(name: 'AWS_ECR_ACCOUNT_ID', defaultValue: '', description: 'AWS ECR account ID')
password(name: 'AWS_ACCESS_KEY_ID', defaultValue: '', description: 'The AWS access key ID')
password(name: 'AWS_SECRET_ACCESS_KEY', defaultValue: '', description: 'The AWS secret access key')
password(name: 'AWS_SESSION_TOKEN', defaultValue: '', description: 'The AWS session token')
}
Run Code Online (Sandbox Code Playgroud)
只需在 UI 中设置参数即可:
啊哈,我找到了一个简单的解决方案!使用 EnvInject 插件,在作业配置中:
构建环境
[X] 在构建过程中注入环境变量
属性文件路径
C:\pathtofile\mapping.properties属性内容
THEME_NAME=${${PROJECT_NAME}}
奇迹般有效!
| 归档时间: |
|
| 查看次数: |
19534 次 |
| 最近记录: |