Skip to content

ci: speed-up the Windows parts of our GitHub workflow

Johannes Schindelin via GitGitGadget git 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest7 patches 6 repliesIn review
  2. v27 patches 5 repliesSuperseded
  3. v16 patches 7 repliesSuperseded

Changes in v3 from the cover letter

* Made the handwaving make [...] NO_GETTEXT comment in the commit message of the patch "artifacts-tar: respect NO_GETTEXT" more explicit, by setting NO_GETTEXT to a bogus value as required by make.
* Added an explicit NO_GETTEXT=YesPlease to the make artifacts-tar invocation in the vs-build job, as well as an explanation in the corresponding commit message why this explicit mention is technically not required.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7ci: use the new GitHub Action to download git-sdk-64-minimal.github/workflows/main.yml+19 -841 reply
2/7ci (vs-build): use `cmd` to copy the DLLs, not `powershell`.github/workflows/main.yml+2 -40 replies
3/7ci: upgrade to using actions/{up,down}load-artifacts v2.github/workflows/main.yml+8 -80 replies
4/7ci(windows): transfer also the Git-tracked files to the test jobs.github/workflows/main.yml+12 -100 replies
5/7artifacts-tar: respect NO_GETTEXTMakefile+4 -10 replies
6/7ci(vs-build): build with NO_GETTEXT.github/workflows/main.yml+2 -24 replies
7/7ci: accelerate the checkout.github/workflows/main.yml+5 -50 replies

Reviews trailers per patch

None of the 7 patches has a Reviewed-by or Acked-by.

PatchMatthias Aßhauer
1/7
2/7
3/7
4/7
5/7Helped-by
6/7Helped-by
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 0/7] ci: speed-up the Windows parts of our GitHub workflow

This patch series upgrades to newer versions of a couple GitHub Actions we use, and also streamlines the Windows jobs using the relatively new setup-git-for-windows-sdk Action
[https://github.com/marketplace/actions/setup-git-for-windows-sdk] (Git for Windows is running with this Action for a while now, getting all the kinks out).

This patch series should also address the problem where seen was pushed so rapidly that the windows-test jobs failed because they no longer checked out the identical revision as the windows-build job.

Changes since v2:

* Made the handwaving make [...] NO_GETTEXT comment in the commit message of the patch "artifacts-tar: respect NO_GETTEXT" more explicit, by setting NO_GETTEXT to a bogus value as required by make.
* Added an explicit NO_GETTEXT=YesPlease to the make artifacts-tar invocation in the vs-build job, as well as an explanation in the corresponding commit message why this explicit mention is technically not required.

Changes since v1:

* Added a patch to fix make NO_GETTEXT=Yep artifacts-tar (not to include .mo files), as suggested by Matthias Aßauer in the GitGitGadget PR, which should fix the CI failure in seen that Junio pointed out. The bug was unhidden by mr/cmake fixing the CMake build (which ignored NO_GETTEXT before).

Dennis Ameling (1):
ci(vs-build): build with NO_GETTEXT

Johannes Schindelin (6):
ci: use the new GitHub Action to download git-sdk-64-minimal ci (vs-build): use cmd to copy the DLLs, not powershell
ci: upgrade to using actions/{up,down}load-artifacts v2 ci(windows): transfer also the Git-tracked files to the test jobs
artifacts-tar: respect NO_GETTEXT
ci: accelerate the checkout

 .github/workflows/main.yml | 157 +++++++++++--------------------------
 Makefile                   |   5 +-
 2 files changed, 50 insertions(+), 112 deletions(-)

base-commit: ebf3c04b262aa27fbb97f8a0156c2347fecafafb
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-878%2Fdscho%2Fuse-setup-git-for-windows-sdk-action-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-878/dscho/use-setup-git-for-windows-sdk-action-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/878

Range-diff vs v2:

 1:  2e4db688deb = 1:  2e4db688deb ci: use the new GitHub Action to download git-sdk-64-minimal
 2:  6b12fe2284c = 2:  6b12fe2284c ci (vs-build): use `cmd` to copy the DLLs, not `powershell`
 3:  c256bbf4b1c = 3:  c256bbf4b1c ci: upgrade to using actions/{up,down}load-artifacts v2
 4:  59dc44428fb = 4:  59dc44428fb ci(windows): transfer also the Git-tracked files to the test jobs
 5:  c31d2e7f44a ! 5:  64f7b1f4e23 artifacts-tar: respect NO_GETTEXT

@@ Commit message
artifacts-tar: respect NO_GETTEXT

We obviously do not want to bundle .mo files during `make
- artifacts-tar NO_GETTEXT`, but that was the case.
+ artifacts-tar NO_GETTEXT=Yep`, but that was the case.

To fix that, go a step beyond just fixing the symptom, and simply define the lists of .po and .mo files as empty if NO_GETTEXT is
6: 8bab4c17b8a ! 6: 2c4cd9dd1c8 ci(vs-build): build with NO_GETTEXT
@@ Commit message
We already build Git for Windows with NO_GETTEXT when compiling with GCC. Let's do the same with Visual C, too.

+ Note that we do not technically _need_ to pass NO_GETTEXT explicitly
+ in that make artifacts-tar invocation because we do this while MSVC
+ is set (which will set uname_S := Windows, which in turn will set
+ NO_GETTEXT = YesPlease). But it is definitely nicer to be explicit
+ here.
+

+ Helped-by: Matthias Aßhauer <[email protected]>

## .github/workflows/main.yml ##
@@ .github/workflows/main.yml: jobs:
- name: MSBuild
run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142
- name: bundle artifact tar
+@@ .github/workflows/main.yml: jobs:
+ VCPKG_ROOT: ${{github.workspace}}\compat\vcbuild\vcpkg
+ run: |
+ mkdir -p artifacts &&
+- eval "$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts 2>&1 | grep ^tar)"
++ eval "$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)"
+ - name: zip up tracked files
+ run: git archive -o artifacts/tracked.tar.gz HEAD
+ - name: upload tracked files and build artifacts
7: 88a44863cd0 = 7: db54bf9a779 ci: accelerate the checkout

Signature · 1 line
gitgitgadget