@@ -103,152 +103,6 @@ jobs:
103103 core.warning(e);
104104 }
105105
106- windows-build :
107- name : win build
108- needs : ci-config
109- if : needs.ci-config.outputs.enabled == 'yes'
110- runs-on : windows-latest
111- concurrency :
112- group : windows-build-${{ github.ref }}
113- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
114- steps :
115- - uses : actions/checkout@v5
116- - uses : git-for-windows/setup-git-for-windows-sdk@v1
117- - name : build
118- shell : bash
119- env :
120- HOME : ${{runner.workspace}}
121- NO_PERL : 1
122- run : . /etc/profile && ci/make-test-artifacts.sh artifacts
123- - name : zip up tracked files
124- run : git archive -o artifacts/tracked.tar.gz HEAD
125- - name : upload tracked files and build artifacts
126- uses : actions/upload-artifact@v5
127- with :
128- name : windows-artifacts
129- path : artifacts
130- windows-test :
131- name : win test
132- runs-on : windows-latest
133- needs : [ci-config, windows-build]
134- strategy :
135- fail-fast : false
136- matrix :
137- nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
138- concurrency :
139- group : windows-test-${{ matrix.nr }}-${{ github.ref }}
140- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
141- steps :
142- - name : download tracked files and build artifacts
143- uses : actions/download-artifact@v6
144- with :
145- name : windows-artifacts
146- path : ${{github.workspace}}
147- - name : extract tracked files and build artifacts
148- shell : bash
149- run : tar xf artifacts.tar.gz && tar xf tracked.tar.gz
150- - uses : git-for-windows/setup-git-for-windows-sdk@v1
151- - name : test
152- shell : bash
153- run : . /etc/profile && ci/run-test-slice.sh ${{matrix.nr}} 10
154- - name : print test failures
155- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
156- shell : bash
157- run : ci/print-test-failures.sh
158- - name : Upload failed tests' directories
159- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
160- uses : actions/upload-artifact@v5
161- with :
162- name : failed-tests-windows-${{ matrix.nr }}
163- path : ${{env.FAILED_TEST_ARTIFACTS}}
164- vs-build :
165- name : win+VS build
166- needs : ci-config
167- if : github.event.repository.owner.login == 'git-for-windows' && needs.ci-config.outputs.enabled == 'yes'
168- env :
169- NO_PERL : 1
170- GIT_CONFIG_PARAMETERS : " 'user.name=CI' 'user.email=ci@git'"
171- runs-on : windows-latest
172- concurrency :
173- group : vs-build-${{ github.ref }}
174- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
175- steps :
176- - uses : actions/checkout@v5
177- - uses : git-for-windows/setup-git-for-windows-sdk@v1
178- - name : initialize vcpkg
179- uses : actions/checkout@v5
180- with :
181- repository : ' microsoft/vcpkg'
182- path : ' compat/vcbuild/vcpkg'
183- - name : download vcpkg artifacts
184- uses : git-for-windows/get-azure-pipelines-artifact@v0
185- with :
186- repository : git/git
187- definitionId : 9
188- - name : add msbuild to PATH
189- uses : microsoft/setup-msbuild@v2
190- - name : copy dlls to root
191- shell : cmd
192- run : compat\vcbuild\vcpkg_copy_dlls.bat release
193- - name : generate Visual Studio solution
194- shell : bash
195- run : |
196- cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \
197- -DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON
198- - name : MSBuild
199- run : msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142
200- - name : bundle artifact tar
201- shell : bash
202- env :
203- MSVC : 1
204- VCPKG_ROOT : ${{github.workspace}}\compat\vcbuild\vcpkg
205- run : |
206- mkdir -p artifacts &&
207- eval "$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)"
208- - name : zip up tracked files
209- run : git archive -o artifacts/tracked.tar.gz HEAD
210- - name : upload tracked files and build artifacts
211- uses : actions/upload-artifact@v5
212- with :
213- name : vs-artifacts
214- path : artifacts
215- vs-test :
216- name : win+VS test
217- runs-on : windows-latest
218- needs : [ci-config, vs-build]
219- strategy :
220- fail-fast : false
221- matrix :
222- nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
223- concurrency :
224- group : vs-test-${{ matrix.nr }}-${{ github.ref }}
225- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
226- steps :
227- - uses : git-for-windows/setup-git-for-windows-sdk@v1
228- - name : download tracked files and build artifacts
229- uses : actions/download-artifact@v6
230- with :
231- name : vs-artifacts
232- path : ${{github.workspace}}
233- - name : extract tracked files and build artifacts
234- shell : bash
235- run : tar xf artifacts.tar.gz && tar xf tracked.tar.gz
236- - name : test
237- shell : bash
238- env :
239- NO_SVN_TESTS : 1
240- run : . /etc/profile && ci/run-test-slice.sh ${{matrix.nr}} 10
241- - name : print test failures
242- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
243- shell : bash
244- run : ci/print-test-failures.sh
245- - name : Upload failed tests' directories
246- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
247- uses : actions/upload-artifact@v5
248- with :
249- name : failed-tests-windows-vs-${{ matrix.nr }}
250- path : ${{env.FAILED_TEST_ARTIFACTS}}
251-
252106 windows-meson-build :
253107 name : win+Meson build
254108 needs : ci-config
@@ -299,207 +153,3 @@ jobs:
299153 - name : Test
300154 shell : pwsh
301155 run : meson test -C build --no-rebuild --print-errorlogs --slice "$(1+${{ matrix.nr }})/10"
302-
303- regular :
304- name : ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
305- needs : ci-config
306- if : needs.ci-config.outputs.enabled == 'yes'
307- concurrency :
308- group : ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
309- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
310- strategy :
311- fail-fast : false
312- matrix :
313- vector :
314- - jobname : osx-clang
315- cc : clang
316- pool : macos-14
317- - jobname : osx-reftable
318- cc : clang
319- pool : macos-14
320- - jobname : osx-gcc
321- cc : gcc-13
322- pool : macos-14
323- - jobname : osx-meson
324- cc : clang
325- pool : macos-14
326- env :
327- CC : ${{matrix.vector.cc}}
328- CC_PACKAGE : ${{matrix.vector.cc_package}}
329- jobname : ${{matrix.vector.jobname}}
330- CI_JOB_IMAGE : ${{matrix.vector.pool}}
331- TEST_OUTPUT_DIRECTORY : ${{github.workspace}}/t
332- runs-on : ${{matrix.vector.pool}}
333- steps :
334- - uses : actions/checkout@v5
335- - run : ci/install-dependencies.sh
336- - run : ci/run-build-and-tests.sh
337- - name : print test failures
338- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
339- run : ci/print-test-failures.sh
340- - name : Upload failed tests' directories
341- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
342- uses : actions/upload-artifact@v5
343- with :
344- name : failed-tests-${{matrix.vector.jobname}}
345- path : ${{env.FAILED_TEST_ARTIFACTS}}
346- fuzz-smoke-test :
347- name : fuzz smoke test
348- needs : ci-config
349- if : needs.ci-config.outputs.enabled == 'yes'
350- env :
351- CC : clang
352- CI_JOB_IMAGE : ubuntu-latest
353- runs-on : ubuntu-latest
354- steps :
355- - uses : actions/checkout@v5
356- - run : ci/install-dependencies.sh
357- - run : ci/run-build-and-minimal-fuzzers.sh
358- dockerized :
359- name : ${{matrix.vector.jobname}} (${{matrix.vector.image}})
360- needs : ci-config
361- if : needs.ci-config.outputs.enabled == 'yes'
362- concurrency :
363- group : dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
364- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
365- strategy :
366- fail-fast : false
367- matrix :
368- vector :
369- - jobname : linux-sha256
370- image : ubuntu:rolling
371- cc : clang
372- - jobname : linux-reftable
373- image : ubuntu:rolling
374- cc : clang
375- - jobname : linux-TEST-vars
376- image : ubuntu:20.04
377- cc : gcc
378- cc_package : gcc-8
379- - jobname : linux-breaking-changes
380- cc : gcc
381- image : ubuntu:rolling
382- - jobname : fedora-breaking-changes-meson
383- image : fedora:latest
384- - jobname : linux-leaks
385- image : ubuntu:rolling
386- cc : gcc
387- - jobname : linux-reftable-leaks
388- image : ubuntu:rolling
389- cc : gcc
390- - jobname : linux-asan-ubsan
391- image : ubuntu:rolling
392- cc : clang
393- - jobname : linux-meson
394- image : ubuntu:rolling
395- cc : gcc
396- - jobname : linux-musl-meson
397- image : alpine:latest
398- # Supported until 2025-04-02.
399- - jobname : linux32
400- image : i386/ubuntu:focal
401- # A RHEL 8 compatible distro. Supported until 2029-05-31.
402- - jobname : almalinux-8
403- image : almalinux:8
404- # Supported until 2026-08-31.
405- - jobname : debian-11
406- image : debian:11
407- env :
408- jobname : ${{matrix.vector.jobname}}
409- CC : ${{matrix.vector.cc}}
410- CI_JOB_IMAGE : ${{matrix.vector.image}}
411- CUSTOM_PATH : /custom
412- runs-on : ubuntu-latest
413- container : ${{matrix.vector.image}}
414- steps :
415- - name : prepare libc6 for actions
416- if : matrix.vector.jobname == 'linux32'
417- run : apt -q update && apt -q -y install libc6-amd64 lib64stdc++6
418- - name : install git in container
419- run : |
420- if command -v git
421- then
422- : # nothing to do
423- elif command -v apk
424- then
425- apk add --update git
426- elif command -v dnf
427- then
428- dnf -yq update && dnf -yq install git
429- else
430- apt-get -q update && apt-get -q -y install git
431- fi
432- - uses : actions/checkout@v5
433- - run : ci/install-dependencies.sh
434- - run : useradd builder --create-home
435- - run : chown -R builder .
436- - run : sudo --preserve-env --set-home --user=builder ci/run-build-and-tests.sh
437- - name : print test failures
438- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
439- run : sudo --preserve-env --set-home --user=builder ci/print-test-failures.sh
440- - name : Upload failed tests' directories
441- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
442- uses : actions/upload-artifact@v5
443- with :
444- name : failed-tests-${{matrix.vector.jobname}}
445- path : ${{env.FAILED_TEST_ARTIFACTS}}
446- static-analysis :
447- needs : ci-config
448- if : needs.ci-config.outputs.enabled == 'yes'
449- env :
450- jobname : StaticAnalysis
451- CI_JOB_IMAGE : ubuntu-22.04
452- runs-on : ubuntu-22.04
453- concurrency :
454- group : static-analysis-${{ github.ref }}
455- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
456- steps :
457- - uses : actions/checkout@v5
458- - run : ci/install-dependencies.sh
459- - run : ci/run-static-analysis.sh
460- - run : ci/check-directional-formatting.bash
461- rust-analysis :
462- needs : ci-config
463- if : needs.ci-config.outputs.enabled == 'yes'
464- env :
465- jobname : RustAnalysis
466- CI_JOB_IMAGE : ubuntu:rolling
467- runs-on : ubuntu-latest
468- container : ubuntu:rolling
469- concurrency :
470- group : rust-analysis-${{ github.ref }}
471- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
472- steps :
473- - uses : actions/checkout@v4
474- - run : ci/install-dependencies.sh
475- - run : ci/run-rust-checks.sh
476- sparse :
477- needs : ci-config
478- if : needs.ci-config.outputs.enabled == 'yes'
479- env :
480- jobname : sparse
481- CI_JOB_IMAGE : ubuntu-22.04
482- runs-on : ubuntu-22.04
483- concurrency :
484- group : sparse-${{ github.ref }}
485- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
486- steps :
487- - uses : actions/checkout@v5
488- - name : Install other dependencies
489- run : ci/install-dependencies.sh
490- - run : make sparse
491- documentation :
492- name : documentation
493- needs : ci-config
494- if : needs.ci-config.outputs.enabled == 'yes'
495- concurrency :
496- group : documentation-${{ github.ref }}
497- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
498- env :
499- jobname : Documentation
500- CI_JOB_IMAGE : ubuntu-latest
501- runs-on : ubuntu-latest
502- steps :
503- - uses : actions/checkout@v5
504- - run : ci/install-dependencies.sh
505- - run : ci/test-documentation.sh
0 commit comments