我们有一个使用 Jenkins 配置的自动构建系统,与 Gerrit 集成。今天的瓶颈之一是,由于存储库的大小,Jenkins 需要大约 3.5 分钟才能完成每个构建的“git clone”。使用“git archive”进行相同的签出大约需要 12 秒。
可以将 Jenkins 的 gerrit 插件配置为使用“git 存档”吗?这将大大减少我们的构建时间。
尽管使用未经修改的 Git 插件版本似乎不可能,但我确实分两步完成了此操作:
1) Change SCM to "None" for the particular job.
2) Add a build step at the beginning to checkout using "git archive"
这是步骤 2) 的示例。
git archive --format=tar --remote=git://host/repo ${GERRIT_REFSPEC} > ${BUILD_ID}.tar && tar xvf ${BUILD_ID}.tar && rm ${BUILD_ID}.tar