Gitlab 根据环境设置CI/CD变量

Gitlab 根据环境设置CI/CD变量,gitlab,gitlab-ci,gitlab-ce,Gitlab,Gitlab Ci,Gitlab Ce,我们有多个环境(登台、生产…),我不想把数据库密码之类的敏感信息放在代码库中。为此,我想使用GitLab CI/CD提供的环境变量 但是,我不知道如何告诉GitLab根据我的环境运行一组不同的变量 到目前为止我所做的: 1-创建环境:通过用户界面(Project=>Operations=>environments:这里我创建了两个环境,STAGING和PRODUCTION 2-通过UI创建变量(Project=>Settings=>CI/CD=>variables:在这里,我创建了变量DB_PA

我们有多个环境(登台、生产…),我不想把数据库密码之类的敏感信息放在代码库中。为此,我想使用GitLab CI/CD提供的环境变量

但是,我不知道如何告诉GitLab根据我的环境运行一组不同的变量

到目前为止我所做的:

1-创建环境:通过用户界面(Project=>Operations=>environments:这里我创建了两个环境,
STAGING
PRODUCTION

2-通过UI创建变量(Project=>Settings=>CI/CD=>variables:在这里,我创建了变量
DB_PASSWORD
两次(当然分配了不同的值),一次将环境范围设置为
STAGING
,另一次设置为
PRODUCTION

现在我要做的是运行我的项目管道。因此我转到project=>CI/CD=>Pipelines=>runpipeline,我希望GitLab CI询问我是否希望使用为暂存或生产设置的变量集运行管道,但实际上没有


我应该如何告诉GitLab我想要使用与我想要的目标环境对应的值的DB\u PASSWORD变量来运行管道?

您需要在GitLab-ci.yml文件中指定环境,请参阅

来自官方gitlab文档的示例

阶段:
-试验
-建造
-部署
测试:
阶段:测试
脚本:echo“运行测试”
建造:
阶段:建造
脚本:echo“构建应用程序”
部署(u)登台:
阶段:部署
脚本:
-echo“部署到临时服务器”
环境:
名称:登台
网址:https://staging.example.com
仅:
-主人
在本例中,当运行
deploy\u staging
时,环境设置为
staging
,因此您可以访问为环境定义的变量,如下所示:

deploy\u staging:
阶段:部署
脚本:
-echo“部署到临时服务器”
环境:
名称:登台
网址:https://staging.example.com
变量:
DB_PASS:${DB_PASSWORD}#这是您在Gitlab CI中定义的变量
仅:
-主人