我正在尝试创建一个 node.js 脚本,它将运行 git 命令来执行夜间构建。我进行了一些搜索,并在这里和那里找到了关于浅克隆、引用缓存、仅克隆一个分支等的各种位,但我找不到任何地方或示例将所有这些结合在一起以实现高效的构建系统。
这是我想象中所需的工作流程:
获取中央仓库主分支的最新干净副本 - 我只想拥有最低限度的必要条件,但我不确定如何组合
--depth 1 --single-branch
以及它是否不会导致一些问题在专用文件夹中构建项目(它是 PHP 项目,所以我将运行 composer、minification 等 - 我已经有所有这些工作的 node.js 脚本)
增加 version.txt 文件中的版本号(我有一个 node.js 脚本)
将更新后的 version.txt 提交给本地 master(我可以用一个浅的单分支克隆来做到这一点吗?)
用版本号标记最后一次提交
使用标签推送到远程主机(我可以使用浅的单分支克隆来做到这一点吗?)
删除克隆文件夹以获得下一次构建的干净副本
部署到开发服务器(只需
git push
在不同的存储库上运行)
目前我打算使用在 Azure VM 上运行的 TeamCity。Git repo 在我的本地服务器上。我不确定我是否会继续使用此设置,因此我想在 node.js 脚本中执行大多数步骤,使其与平台/构建系统无关。
这个工作流程是否可行或可能导致问题?另外,我应该/我可以使用缓存()加速它git clone --reference
还是对我的情况来说是多余的?