git clone和检出特定标签

时间:2019-03-07 10:44:24

标签: git tags ansible gitlab pipeline

我正在使用自己的具有Ansible角色的git存储库来开发gitlab项目。

问题是,我们还有一些由另一个团队维护的共享角色。这些角色在一个单独的项目中,每个角色就像一个具有自己的存储库的子项目。现在,在我们的管道中,我们从运行程序中对这些角色进行git克隆,执行代码,然后再次删除克隆。

虽然此机制运行良好,但该方法引起了问题。假设我们部署到开发,测试和验收,然后其他团队会更新共享的角色。到部署到生产时,由于克隆的共享角色已更改,因此将出现不一致之处。

所以我想到了引入git标签。共享角色上的每次提交都带有版本号标记。然后,我们可以进行git克隆,并签出版本号。

但是,我正在努力寻找如何在管道中实现此目标的努力。有没有一种方法可以不必在管道中对版本号进行硬编码?

1 个答案:

答案 0 :(得分:0)

相同场景中,剧本共享角色。

我们看过:

  • 标签
  • 子模块(喜欢)
  • subrepos

最后,我们一无所获:您的每本剧本都包含指向我们角色 all 的父文件夹的符号链接,作为WorkQueue文件夹。
这样,剧本总是会引用角色的最新版本(当前已签出)。

能够继续引用剧本的特定SHA1,但共识仍然存在:始终使用最新角色。无需管理任何特定的Git引用(涉及每个角色的Git存储库)

相关问题