【发布时间】:2021-01-23 19:58:01
【问题描述】:
我有一个 gitlab 存储库,其中我为不同的环境分配了不同的变量。我有一个用于此存储库的管道,我希望将其部署到那些不同的环境中。
我不想直接在我的代码中对环境进行编码,因此我想手动选择环境作为管道的第一阶段,以便管道仅使用从那时起分配给所选环境的那些变量。
这在 gitlab 中可能吗?有什么意义吗?
【问题讨论】:
标签: gitlab gitlab-ci gitlab-ci-runner
我有一个 gitlab 存储库,其中我为不同的环境分配了不同的变量。我有一个用于此存储库的管道,我希望将其部署到那些不同的环境中。
我不想直接在我的代码中对环境进行编码,因此我想手动选择环境作为管道的第一阶段,以便管道仅使用从那时起分配给所选环境的那些变量。
这在 gitlab 中可能吗?有什么意义吗?
【问题讨论】:
标签: gitlab gitlab-ci gitlab-ci-runner
您可能可以使用dynamic child-pipeline 创建部署的“空白”模板,该模板将在主管道期间使用您的变量进行序列化。这样一来,您就可以为每个环境清晰地分离作业。
我希望这有助于或至少提供一些关于正确方法的线索,玩得开心!
【讨论】:
我不认为你可以在另一个阶段重复使用为一个阶段定义或指定的变量。 ci 作业的关键之一是尽可能地可重复,因此即将到来的阶段的作业不能继承前一阶段的变量。
根据我的经验,环境之间总是存在一些小的差异,因此对我来说,几乎可以为不同的环境复制/粘贴作业定义。
【讨论】: