【发布时间】:2019-07-29 05:26:05
【问题描述】:
我正在开发一个 gitlab 项目,它有自己的 git 存储库和 Ansible 角色。
问题是我们还有一些由另一个团队维护的共享角色。这些角色在一个单独的项目中,每个角色就像一个拥有自己存储库的子项目。现在在我们的管道中,我们从运行器中对这些角色进行 git 克隆,执行代码并再次删除克隆。
虽然这种机制运作良好,但这种方法会导致问题。假设我们部署到开发、测试和验收,然后共享角色由其他团队更新。当我们部署到生产环境时,我们会因为克隆的共享角色发生变化而出现不一致。
所以我想到了引入 git 标签。共享角色上的每个提交都带有版本号标记。然后我们可以做一个 git clone,并检查版本号。
但是,我正在努力弄清楚如何在管道中实现这一点。有没有办法做到这一点,而不必在管道中硬编码版本号?
【问题讨论】:
-
提交 ID 的标签——没关系。重要的是您必须创建一个映射,将存储库中的提交映射到共享角色存储库中的标签(或提交)。有很多可能的方法来存储这样的地图;您可以将其存储在文本文件或管道脚本中。您还可以将共享角色存储库作为子模块添加到存储库; git 用子模块本身维护所述提交映射。
-
这里的一位同事说了类似的话,并将此信息存储在 Artifcatory 中。谢谢你的回答。
标签: git tags ansible gitlab pipeline