Git development
 help / color / mirror / Atom feed
* [PATCH 0/7] ci: some speedups for slow tests
@ 2026-11-06 10:30 Patrick Steinhardt
  2026-11-06 10:30 ` [PATCH 1/7] gitlab-ci: speed up installation of Git for Windows SDK Patrick Steinhardt
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Patrick Steinhardt @ 2026-11-06 10:30 UTC (permalink / raw)
  To: git; +Cc: Johannes Schindelin

Hi,

I was staring at CI way more often recently, and that got me annoyed
real fast because it's just painstakingly slow. So I decided to have a
look and try do something about it, the result of which is this patch
series.

The series contains a couple of bits that are specific to GitLab, and a
couple of fixes that are generic. Some highlights:

  - Installing the Git for Windows SDK speeds up from 3 minutes to 10
    seconds by using tar(1) instead of Extract-Archive.

  - t0027 speeds up from >10 minutes to 6 minutes on Windows by avoiding
    the overhead of spawning redundant processes.

  - t5551 and t5559 both speed up by a factor of 10 on macOS, going from
    20 minutes each to 2 minutes each by using reftables in a repo with
    100k refs. "osx-meson" and "osx-clang" thus go from 29 minutes to 18
    minutes end-to-end.

  - "fedora-breaking-changes-meson" speeds up by a factor of 2, going
    from 35 minutes to 16 minutes. Turns out our SHA256 implementation
    is quite slow with "-O0".

Unfortunately, our Windows runners at GitLab are still atrociously slow
by themselves. So the critical path only improves by about ~10 minutes,
going from 60-70 minutes to 53 minutes end-to-end. But hey, at least the
other jobs now give feedback a bit faster. And I guess on GitHub it may
be a different story because Windows runners are way better there and
are typically not on the critical path.

A test run can be found at [1].

Thanks!

Patrick

[1]: https://gitlab.com/gitlab-org/git/-/merge_requests/734

---
Patrick Steinhardt (7):
      gitlab-ci: speed up installation of Git for Windows SDK
      gitlab-ci: exclude intermediate outputs from Windows artifacts
      ci: build optimized binaries with Meson
      t0027: optimize how we reset repository state
      t0027: cache expected output files
      t1092: set up repositories from templates
      t5551: use reftables for repositories with many refs

 .gitlab-ci.yml                           | 13 ++++++++++--
 ci/install-sdk.ps1                       | 26 ++++++++++++++++++------
 ci/run-build-and-tests.sh                |  1 +
 t/t0027-auto-crlf.sh                     | 33 +++++++++++++++++--------------
 t/t1092-sparse-checkout-compatibility.sh | 34 +++++++++++++++++++-------------
 t/t5551-http-fetch-smart.sh              |  6 ++++--
 6 files changed, 74 insertions(+), 39 deletions(-)


---
base-commit: 0ffa3e35c7c82ab8d0de226149fb03b3f7674d05
change-id: 20261106-pks-gitlab-ci-speedups-09c3841eb178


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-11-08 16:49 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-06 10:30 [PATCH 0/7] ci: some speedups for slow tests Patrick Steinhardt
2026-11-06 10:30 ` [PATCH 1/7] gitlab-ci: speed up installation of Git for Windows SDK Patrick Steinhardt
2026-11-06 17:20   ` Junio C Hamano
2026-11-06 10:30 ` [PATCH 2/7] gitlab-ci: exclude intermediate outputs from Windows artifacts Patrick Steinhardt
2026-11-06 10:30 ` [PATCH 3/7] ci: build optimized binaries with Meson Patrick Steinhardt
2026-11-06 17:24   ` Junio C Hamano
2026-11-06 10:30 ` [PATCH 4/7] t0027: optimize how we reset repository state Patrick Steinhardt
2026-11-06 17:33   ` Junio C Hamano
2026-11-08 16:49     ` Torsten Bögershausen
2026-11-06 10:30 ` [PATCH 5/7] t0027: cache expected output files Patrick Steinhardt
2026-11-06 10:30 ` [PATCH 6/7] t1092: set up repositories from templates Patrick Steinhardt
2026-11-06 10:30 ` [PATCH 7/7] t5551: use reftables for repositories with many refs Patrick Steinhardt
2026-11-06 17:39 ` [PATCH 0/7] ci: some speedups for slow tests Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox