我正在尝试构建一个持续集成系统。每次推送到GitHub都会触发一次构建。
每次构建都需要检出/下载处理的提交所在的存储库。我试图找到一种不需要花费数分钟的方法来做到这一点,因为构建仅需要几秒钟时间。
请注意,我不想在构建之间存储数据(这将消除缓存的可能性)。
我探索过的解决方案:
- `git clone`,然后检出提交:可以工作,但对于大型存储库需要数分钟 - git 2.5 据说引入了获取单个提交的方法,但我无法在GitHub上使用它,我猜测他们没有使用git 2.5 - 使用GitHub API进行git数据,但我无法弄清楚是否可以以某种方式有效地下载特定版本的所有文件(即避免每个文件的单个HTTP请求) - 我在GitHub上看到的每个其他解决方案都要么假定服务器上有最近的git版本,要么认为在我的情况下可以克隆存储库一次,但我的情况不是这样。我每次都从头开始(因为这是一个约束条件)。
因此,在GitHub的特定情况下,我想问:如何(以任何方式)下载特定提交的代码以便能够在该提交上运行持续集成工具?
每次构建都需要检出/下载处理的提交所在的存储库。我试图找到一种不需要花费数分钟的方法来做到这一点,因为构建仅需要几秒钟时间。
请注意,我不想在构建之间存储数据(这将消除缓存的可能性)。
我探索过的解决方案:
- `git clone`,然后检出提交:可以工作,但对于大型存储库需要数分钟 - git 2.5 据说引入了获取单个提交的方法,但我无法在GitHub上使用它,我猜测他们没有使用git 2.5 - 使用GitHub API进行git数据,但我无法弄清楚是否可以以某种方式有效地下载特定版本的所有文件(即避免每个文件的单个HTTP请求) - 我在GitHub上看到的每个其他解决方案都要么假定服务器上有最近的git版本,要么认为在我的情况下可以克隆存储库一次,但我的情况不是这样。我每次都从头开始(因为这是一个约束条件)。
因此,在GitHub的特定情况下,我想问:如何(以任何方式)下载特定提交的代码以便能够在该提交上运行持续集成工具?