我正在处理一个Django项目,将其与Jenkins多分支Pipeline进行集成。我已经安装了环境注入器插件,但是即使通过Multibrach Pipeline选项,我仍无法注入环境变量。
我有一些环境变量,例如DB_PASSWORD,必须包含在envvars中。
非常感谢您的任何见解。
我有一些环境变量,例如DB_PASSWORD,必须包含在envvars中。
非常感谢您的任何见解。
由于您需要使用密钥,最佳实践是使用withCredentials插件,该插件可以加载存储在Jenkins凭据存储中的凭据,并将它们作为环境变量暴露给其块/闭包内执行的代码。使用withCredentials不会在Jenkins日志中公开它们。
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'DB_Creds',
usernameVariable: 'DB_USERNAME',
passwordVariable: 'DB_PASSWORD']]) {// do stuff }
对于非敏感的环境变量,请使用 withEnv。
withEnv(["AWS_REGION=${params.AWS_REGION}"]) {// do stuff }
如果出于某些原因,您希望在整个流水线中设置环境变量(虽然不是完全推荐,但有时是必要的):
env.MY_VAR='var'
echo("My Env var = ${env.MY_VAR}")
withEnv
和withCredentials
对您无效吗? - mkobitwithEnv(['DB_PASSWORD=password']) { sh ''' virtualenv venv . venv/bin/activate python manage.py collectstatic --noinput deactivate ''' }
已经可用,但问题是我把我的DB_PASSWORD值暴露给了公众,感谢之前的见解。 - Erick Mwazonga