]> git.ipfire.org Git - thirdparty/git.git/commit
ci: wire up Visual Studio build with Meson
authorPatrick Steinhardt <ps@pks.im>
Wed, 22 Jan 2025 12:05:54 +0000 (13:05 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Jan 2025 20:37:35 +0000 (12:37 -0800)
commit7304bd2bc390aa6cf27f7a2527d7806dd3fad53e
tree44bcac4600ba087604ab11b03a7599a12690987e
parenta8179952e13af2902d4806d2e2982bcfeb6339eb
ci: wire up Visual Studio build with Meson

Add a new job to GitHub Actions and GitLab CI that builds and tests
Meson-based builds with Visual Studio.

A couple notes:

  - While the build job is mandatory, the test job is marked as "manual"
    on GitLab so that it doesn't run by default. We already have a bunch
    of Windows-based jobs, and the computational overhead that these
    cause is simply out of proportion to run the test suite twice.

    The same isn't true for GitHub as I could not find a way to make a
    subset of jobs manually triggered.

  - We disable Perl. This is because we pick up Perl from Git for
    Windows, which outputs different paths ("/c/" instead of "C:\") than
    what we expect in our tests.

  - We don't use the Git for Windows SDK. Instead, the build only
    depends on Visual Studio, Meson and Git for Windows. All the other
    dependencies like curl, pcre2 and zlib get pulled in and compiled
    automatically by Meson and thus do not have to be provided by the
    system.

  - We open-code "ci/run-test-slice.sh". This is because we only have
    direct access to PowerShell, so we manually implement the logic.
    There is an upstream pull request for the Meson build system [1] to
    implement test slicing in Meson directly.

  - We don't process test artifacts for failed CI jobs. This is done to
    keep down prerequisites to a minimum.

All tests are passing.

[1]: https://github.com/mesonbuild/meson/pull/14092

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.github/workflows/main.yml
.gitlab-ci.yml