我有一个按以下树组织的项目
|.
|..
|-- devops
|-- project1
|-- project2
在 devops 文件夹中,我将其他两个项目作为子模块包含在内,因为这两个项目是由两个不同的团队独立开发的。
|.
|..
|-- project1@0deed0fa
|-- project2@0beef0fb
|-- .gitlab-ci.yml
我已经设置了部署项目的管道。每当任何项目有新提交时,都会设置一个触发器来运行 devops
项目管道。作为 DevOps 工作的一部分,我运行 git submodule
获取和 merge 的命令。然后构建。它有效。
我遇到的问题是,在一段时间内,子模块发生了很多变化。每次对任何项目进行提交时,都会重播从最后一个子模块提交到 devops 项目文件夹的更改。我每月手动更新一次devops
项目文件夹并更新到子模块项目的最新提交。我可以提交 devops 管道任务中的更改,但这将在同一 devops 管道中生成新管道。 (我没有测试过,但看起来很明显)。
作为 DevOps 管道的一部分,有什么方法可以将子模块更新到最新提交吗?
谢谢。
最佳答案
使用这样的 CI 环境:
variables:
GIT_SUBMODULE_STRATEGY: normal
GIT_SUBMODULE_UPDATE_FLAGS: --remote
更多信息请参见 docs
关于git - 如何更新 gitlab CI/CD 中的子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65946723/