mirror of
https://github.com/git/git.git
synced 2024-11-27 03:53:55 +08:00
gitlab-ci: exercise Git on Windows
Add jobs that exercise Git on Windows. Unfortunately, building and especially testing Git on Windows is inherently slower compared to other Unix-like systems, mostly because spawning processes is way slower. We thus use the same layout as we use in GitHub Actions, where we have one build job, and then pass on the resulting build artifacts to ten test jobs that split up the work across each other. Unfortunately, the GitLab runners for Windows machines are embarassingly slow by themselves. So while this strategy leads to around 20 minutes of build time in GitHub Actions, the same pipeline takes around an hour in GitLab CI. Still, having late coverage is certainly better than having none at all. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
05a928a93e
commit
631ddbbcbd
@ -2,6 +2,7 @@ default:
|
|||||||
timeout: 2h
|
timeout: 2h
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
- build
|
||||||
- test
|
- test
|
||||||
- analyze
|
- analyze
|
||||||
|
|
||||||
@ -108,6 +109,38 @@ test:osx:
|
|||||||
- t/failed-test-artifacts
|
- t/failed-test-artifacts
|
||||||
when: on_failure
|
when: on_failure
|
||||||
|
|
||||||
|
build:mingw64:
|
||||||
|
stage: build
|
||||||
|
tags:
|
||||||
|
- saas-windows-medium-amd64
|
||||||
|
variables:
|
||||||
|
NO_PERL: 1
|
||||||
|
before_script:
|
||||||
|
- ./ci/install-sdk.ps1 -directory "git-sdk"
|
||||||
|
script:
|
||||||
|
- git-sdk/usr/bin/bash.exe -l -c 'ci/make-test-artifacts.sh artifacts'
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- artifacts
|
||||||
|
- git-sdk
|
||||||
|
|
||||||
|
test:mingw64:
|
||||||
|
stage: test
|
||||||
|
tags:
|
||||||
|
- saas-windows-medium-amd64
|
||||||
|
needs:
|
||||||
|
- job: "build:mingw64"
|
||||||
|
artifacts: true
|
||||||
|
before_script:
|
||||||
|
- git-sdk/usr/bin/bash.exe -l -c 'tar xf artifacts/artifacts.tar.gz'
|
||||||
|
- New-Item -Path .git/info -ItemType Directory
|
||||||
|
- New-Item .git/info/exclude -ItemType File -Value "/git-sdk"
|
||||||
|
script:
|
||||||
|
- git-sdk/usr/bin/bash.exe -l -c "ci/run-test-slice.sh $CI_NODE_INDEX $CI_NODE_TOTAL"
|
||||||
|
after_script:
|
||||||
|
- git-sdk/usr/bin/bash.exe -l -c 'ci/print-test-failures.sh'
|
||||||
|
parallel: 10
|
||||||
|
|
||||||
test:fuzz-smoke-tests:
|
test:fuzz-smoke-tests:
|
||||||
image: ubuntu:latest
|
image: ubuntu:latest
|
||||||
stage: test
|
stage: test
|
||||||
|
Loading…
Reference in New Issue
Block a user