All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Patrick Steinhardt <ps@pks.im>
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: Fri, 06 Nov 2026 09:20:57 -0800	[thread overview]
Message-ID: <xmqqa4nllvuu.fsf@gitster.g> (raw)
In-Reply-To: <20261106-pks-gitlab-ci-speedups-v1-1-1fa0374c7287@pks.im> (Patrick Steinhardt's message of "Fri, 06 Nov 2026 11:30:01 +0100")

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?

> 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.

> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
>  .gitlab-ci.yml     |  9 ++++++++-
>  ci/install-sdk.ps1 | 26 ++++++++++++++++++++------
>  2 files changed, 28 insertions(+), 7 deletions(-)
>
> 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.


  reply	other threads:[~2026-11-06 17:21 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 [this message]
2026-11-09  6:58     ` Patrick Steinhardt
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=xmqqa4nllvuu.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=ps@pks.im \
    /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.