带有变量的Gitlab CI复制文件
我在带有变量的Gitlab CI复制文件,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我在gitlab服务中有一个django存储库。我在VDS中使用gitlab CI runner。我希望在部署过程中复制一些文件,例如local_settings.py,并仅在部署时填充变量,例如: # $CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgr
gitlab
服务中有一个django
存储库。我在VDS中使用gitlab CI runner。我希望在部署过程中复制一些文件,例如local_settings.py
,并仅在部署时填充变量,例如:
# $CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USERNAME': '$DB_USERNAME',
'PASSWORD': '$DB_PASSWORD',
},
}
# .gitlab-ci.yml
configure_project:
script:
- git clone $CI_BUILD_REPO
- cp $CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl $CI_PROJECT_NAME/$CI_PROJECT_NAME/local_settings.py
在我的项目中,我定义了
DB\u用户名
和DB\u密码
安全变量。如何获取具有值的文件?我需要来自ansible
的template
指令之类的东西,这可以通过envsubst
命令实现。在.gitlab ci.yml
文件中,可以执行以下操作:
configure\u项目:
脚本:
-git克隆$CI\u构建\u回购
-envsubst<“$CI_PROJECT_NAME/$CI_PROJECT_NAME/deploy_templates/local_settings.py.tpl”>“local_settings.py.tpl.exported”
-cp local_settings.py.tpl.exported$CI_PROJECT_NAME/$CI_PROJECT_NAME/local_settings.py
将替换环境变量的值,并且可以将输出重定向到另一个名为local\u settings.py.tpl.exported的文件,您可以复制该文件