All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: [PATCH 1/7] gitlab-ci: speed up installation of Git for Windows SDK
Date: Mon, 9 Nov 2026 07:58:19 +0100	[thread overview]
Message-ID: <avFvC80wfg2nulG2@pks.im> (raw)
In-Reply-To: <xmqqa4nllvuu.fsf@gitster.g>

On Fri, Nov 06, 2026 at 09:20:57AM -0800, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > The "build:mingw64" job on GitLab CI downloads the minimal Git for
> > Windows SDK on every run and then extracts it via `Expand-Archive`,
> > which is expensive.
> >
> > Improve this by caching the SDK and by using tar(1) instead of
> > `Expand-Archive`.
> > Note that caching actually only gives us a win of a
> > couple seconds. The bigger win here is using tar(1), which speeds up
> > extracting the archive from 3 minutes to about 10 seconds. Regardless of
> 
> Wow, is a tool to move the bits from one part of a rusted iron
> surface to another part really so much more expensive compared to
> another tool to move the same bits, to make a difference that is
> worth doing this?

I was surprised by this, as well.

> > that though, caching the SDK feels like a sensible thing to do as it
> > removes one step that may spuriously fail.
> 
> One thing that may make readers curious is if we need to worry about
> this cached copy going stale.

Yes, it may go stale, but I'm not even sure whether that really matters.
I decided to just do this as-is and Cc Johannes to maybe facilitate his
input on this part. But arguably, we can just skip the cache altogether
as it didn't really buy much anyway.

> > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> > index 9b7698a0037..15419a954b3 100644
> > --- a/.gitlab-ci.yml
> > +++ b/.gitlab-ci.yml
> > @@ -127,9 +127,16 @@ build:mingw64:
> >      - saas-windows-medium-amd64
> >    variables:
> >      NO_PERL: 1
> > +  cache:
> > +    key:
> > +      files:
> > +        - ci/install-sdk.ps1
> > +        - ci/install-dependencies.ps1
> > +    paths:
> > +      - .dependencies
> >    before_script:
> >      - *windows_before_script
> > -    - ./ci/install-sdk.ps1 -directory "git-sdk"
> > +    - ./ci/install-sdk.ps1 -Directory "git-sdk"
> 
> Is this change essential to understand this patch, or is it an
> unrelated general clean-up to follow some style rules?  I notice
> that ...
> 
> >      - ./ci/install-dependencies.ps1 -Mingw
> >    script:
> >      # The minimal SDK's profile resets PATH.
> > diff --git a/ci/install-sdk.ps1 b/ci/install-sdk.ps1
> > index 66f24838a40..1dbcef04a18 100755
> > --- a/ci/install-sdk.ps1
> > +++ b/ci/install-sdk.ps1
> > @@ -1,12 +1,26 @@
> >  param(
> > -    [string]$directory='git-sdk',
> > -    [string]$url='https://github.com/git-for-windows/git-sdk-64/releases/download/ci-artifacts/git-sdk-x86_64-minimal.zip'
> > +    [string]$Directory='git-sdk',
> > +    [string]$URL='https://github.com/git-for-windows/git-sdk-64/releases/download/ci-artifacts/git-sdk-x86_64-minimal.zip',
> > +    [string]$DownloadDirectory='.dependencies'
> 
> ... we are making a matching change here to upcase the parameter
> names here.

Well, with the new DownloadDirectory parameter everything else would
have been inconsistent, so I made those changes while at it. I'll dropt
he cache in v2 though, and with that we can drop these changes, too.

Patrick

  reply	other threads:[~2026-11-09  6:58 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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-09  6:58     ` Patrick Steinhardt [this message]
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-09  6:30       ` Patrick Steinhardt
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
2026-11-09  9:58 ` [PATCH v2 " Patrick Steinhardt
2026-11-09  9:58   ` [PATCH v2 1/7] gitlab-ci: speed up installation of Git for Windows SDK Patrick Steinhardt
2026-11-09 16:53     ` Junio C Hamano
2026-11-10  6:53       ` Patrick Steinhardt
2026-11-10 16:11         ` Junio C Hamano
2026-11-09  9:58   ` [PATCH v2 2/7] gitlab-ci: exclude intermediate outputs from Windows artifacts Patrick Steinhardt
2026-11-09  9:58   ` [PATCH v2 3/7] ci: build optimized binaries with Meson Patrick Steinhardt
2026-11-09  9:58   ` [PATCH v2 4/7] t0027: optimize how we reset repository state Patrick Steinhardt
2026-11-09 16:59     ` Junio C Hamano
2026-11-10  6:53       ` Patrick Steinhardt
2026-11-09  9:58   ` [PATCH v2 5/7] t0027: cache expected output files Patrick Steinhardt
2026-11-09 14:46     ` Torsten Bögershausen
2026-11-10  6:53       ` Patrick Steinhardt
2026-11-10 10:29         ` Torsten Bögershausen
2026-11-09  9:58   ` [PATCH v2 6/7] t1092: set up repositories from templates Patrick Steinhardt
2026-11-09  9:58   ` [PATCH v2 7/7] t5551: use reftables for repositories with many refs Patrick Steinhardt
2026-11-12  8:19   ` [PATCH v2 0/7] ci: some speedups for slow tests Johannes Sixt
2026-11-11 10:47 ` [PATCH v3 " Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 1/7] gitlab-ci: speed up installation of Git for Windows SDK Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 2/7] gitlab-ci: exclude intermediate outputs from Windows artifacts Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 3/7] ci: build optimized binaries with Meson Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 4/7] t0027: optimize how we reset repository state Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 5/7] t0027: cache expected output files Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 6/7] t1092: set up repositories from templates Patrick Steinhardt
2026-11-11 10:47   ` [PATCH v3 7/7] t5551: use reftables for repositories with many refs Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=avFvC80wfg2nulG2@pks.im \
    --to=ps@pks.im \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.