@@ -188,362 +188,3 @@ jobs:
188188 with :
189189 name : failed-tests-windows-${{ matrix.nr }}-${{ matrix.use-busybox }}
190190 path : ${{env.FAILED_TEST_ARTIFACTS}}
191- vs-build :
192- name : win+VS build
193- needs : ci-config
194- if : github.event.repository.owner.login == 'git-for-windows' && needs.ci-config.outputs.enabled == 'yes'
195- env :
196- NO_PERL : 1
197- GIT_CONFIG_PARAMETERS : " 'user.name=CI' 'user.email=ci@git'"
198- runs-on : windows-latest
199- strategy :
200- matrix :
201- arch : [x64, arm64]
202- concurrency :
203- group : vs-build-${{ github.ref }}-${{ matrix.arch }}
204- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
205- steps :
206- - uses : actions/checkout@v6
207- - uses : git-for-windows/setup-git-for-windows-sdk@v2
208- - name : initialize vcpkg
209- uses : actions/checkout@v6
210- with :
211- repository : ' microsoft/vcpkg'
212- path : ' compat/vcbuild/vcpkg'
213- - name : download vcpkg artifacts
214- uses : git-for-windows/get-azure-pipelines-artifact@v0
215- with :
216- repository : git/git
217- definitionId : 9
218- - name : add msbuild to PATH
219- uses : microsoft/setup-msbuild@v3
220- - name : copy dlls to root
221- shell : cmd
222- run : compat\vcbuild\vcpkg_copy_dlls.bat release ${{ matrix.arch }}-windows
223- - name : generate Visual Studio solution
224- shell : bash
225- run : |
226- cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/${{ matrix.arch }}-windows \
227- -DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON -DCMAKE_GENERATOR_PLATFORM=${{ matrix.arch }} -DVCPKG_ARCH=${{ matrix.arch }}-windows -DHOST_CPU=${{ matrix.arch }}
228- - name : MSBuild
229- run : |
230- $sln = if (Test-Path git.slnx) { 'git.slnx' } else { 'git.sln' }
231- msbuild $sln -property:Configuration=Release -property:Platform=${{ matrix.arch }} -maxCpuCount:4
232- - name : bundle artifact tar
233- shell : bash
234- env :
235- MSVC : 1
236- VCPKG_ROOT : ${{github.workspace}}\compat\vcbuild\vcpkg
237- run : |
238- mkdir -p artifacts &&
239- eval "$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts NO_GETTEXT=YesPlease 2>&1 | grep ^tar)"
240- - name : zip up tracked files
241- run : git archive -o artifacts/tracked.tar.gz HEAD
242- - name : upload tracked files and build artifacts
243- uses : actions/upload-artifact@v7
244- with :
245- name : vs-artifacts-${{ matrix.arch }}
246- path : artifacts
247- vs-test :
248- name : win+VS test
249- runs-on : windows-latest
250- needs : [ci-config, vs-build]
251- strategy :
252- fail-fast : false
253- matrix :
254- nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
255- concurrency :
256- group : vs-test-${{ matrix.nr }}-${{ github.ref }}
257- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
258- steps :
259- - uses : git-for-windows/setup-git-for-windows-sdk@v2
260- - name : download tracked files and build artifacts
261- uses : actions/download-artifact@v8
262- with :
263- name : vs-artifacts-x64
264- path : ${{github.workspace}}
265- - name : extract tracked files and build artifacts
266- shell : bash
267- run : tar xf artifacts.tar.gz && tar xf tracked.tar.gz
268- - name : test
269- shell : bash
270- env :
271- NO_SVN_TESTS : 1
272- run : . /etc/profile && ci/run-test-slice.sh $((${{matrix.nr}} + 1)) 10
273- - name : print test failures
274- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
275- shell : bash
276- run : ci/print-test-failures.sh
277- - name : Upload failed tests' directories
278- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
279- uses : actions/upload-artifact@v7
280- with :
281- name : failed-tests-windows-vs-${{ matrix.nr }}
282- path : ${{env.FAILED_TEST_ARTIFACTS}}
283-
284- windows-meson-build :
285- name : win+Meson build
286- needs : ci-config
287- if : needs.ci-config.outputs.enabled == 'yes'
288- runs-on : windows-latest
289- concurrency :
290- group : windows-meson-build-${{ github.ref }}
291- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
292- steps :
293- - uses : actions/checkout@v6
294- - uses : actions/setup-python@v6
295- - name : Set up dependencies
296- shell : pwsh
297- run : pip install meson ninja
298- - name : Setup
299- shell : pwsh
300- run : meson setup build --vsenv -Dbuildtype=release -Dperl=disabled -Dcredential_helpers=wincred
301- - name : Compile
302- shell : pwsh
303- run : meson compile -C build
304- - name : Upload build artifacts
305- uses : actions/upload-artifact@v7
306- with :
307- name : windows-meson-artifacts
308- path : build
309- windows-meson-test :
310- name : win+Meson test
311- runs-on : windows-latest
312- needs : [ci-config, windows-meson-build]
313- strategy :
314- fail-fast : false
315- matrix :
316- nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
317- concurrency :
318- group : windows-meson-test-${{ matrix.nr }}-${{ github.ref }}
319- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
320- steps :
321- - uses : actions/checkout@v6
322- - uses : actions/setup-python@v6
323- - name : Set up dependencies
324- shell : pwsh
325- run : pip install meson ninja
326- - name : Download build artifacts
327- uses : actions/download-artifact@v8
328- with :
329- name : windows-meson-artifacts
330- path : build
331- - name : Test
332- shell : bash
333- run : ci/run-test-slice-meson.sh build $((${{matrix.nr}} + 1)) 10
334- - name : print test failures
335- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
336- shell : bash
337- run : ci/print-test-failures.sh
338- - name : Upload failed tests' directories
339- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
340- uses : actions/upload-artifact@v7
341- with :
342- name : failed-tests-windows-meson-${{ matrix.nr }}
343- path : ${{env.FAILED_TEST_ARTIFACTS}}
344-
345- regular :
346- name : ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
347- needs : ci-config
348- if : needs.ci-config.outputs.enabled == 'yes'
349- concurrency :
350- group : ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
351- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
352- strategy :
353- fail-fast : false
354- matrix :
355- vector :
356- - jobname : osx-clang
357- cc : clang
358- pool : macos-14
359- - jobname : osx-reftable
360- cc : clang
361- pool : macos-14
362- - jobname : osx-gcc
363- cc : gcc-13
364- pool : macos-14
365- - jobname : osx-meson
366- cc : clang
367- pool : macos-14
368- env :
369- CC : ${{matrix.vector.cc}}
370- CC_PACKAGE : ${{matrix.vector.cc_package}}
371- jobname : ${{matrix.vector.jobname}}
372- CI_JOB_IMAGE : ${{matrix.vector.pool}}
373- TEST_OUTPUT_DIRECTORY : ${{github.workspace}}/t
374- runs-on : ${{matrix.vector.pool}}
375- steps :
376- - uses : actions/checkout@v6
377- - run : ci/install-dependencies.sh
378- - run : ci/run-build-and-tests.sh
379- - name : print test failures
380- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
381- run : ci/print-test-failures.sh
382- - name : Upload failed tests' directories
383- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
384- uses : actions/upload-artifact@v7
385- with :
386- name : failed-tests-${{matrix.vector.jobname}}
387- path : ${{env.FAILED_TEST_ARTIFACTS}}
388- fuzz-smoke-test :
389- name : fuzz smoke test
390- needs : ci-config
391- if : needs.ci-config.outputs.enabled == 'yes'
392- env :
393- CC : clang
394- CI_JOB_IMAGE : ubuntu-latest
395- runs-on : ubuntu-latest
396- steps :
397- - uses : actions/checkout@v6
398- - run : ci/install-dependencies.sh
399- - run : ci/run-build-and-minimal-fuzzers.sh
400- dockerized :
401- name : ${{matrix.vector.jobname}} (${{matrix.vector.image}})
402- needs : ci-config
403- if : needs.ci-config.outputs.enabled == 'yes'
404- concurrency :
405- group : dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
406- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
407- strategy :
408- fail-fast : false
409- matrix :
410- vector :
411- - jobname : linux-sha256
412- image : ubuntu:rolling
413- cc : clang
414- - jobname : linux-reftable
415- image : ubuntu:rolling
416- cc : clang
417- - jobname : linux-TEST-vars
418- image : ubuntu:20.04
419- cc : gcc
420- cc_package : gcc-8
421- - jobname : linux-breaking-changes
422- cc : gcc
423- image : ubuntu:rolling
424- - jobname : fedora-breaking-changes-meson
425- image : fedora:latest
426- - jobname : linux-leaks
427- image : ubuntu:rolling
428- cc : gcc
429- - jobname : linux-reftable-leaks
430- image : ubuntu:rolling
431- cc : gcc
432- - jobname : linux-asan-ubsan
433- image : ubuntu:rolling
434- cc : clang
435- - jobname : linux-meson
436- image : ubuntu:rolling
437- cc : gcc
438- - jobname : linux-musl-meson
439- image : alpine:latest
440- # Supported until 2025-04-02.
441- - jobname : linux32
442- image : i386/ubuntu:20.04
443- # A RHEL 8 compatible distro. Supported until 2029-05-31.
444- - jobname : almalinux-8
445- image : almalinux:8
446- # Supported until 2026-08-31.
447- - jobname : debian-11
448- image : debian:11
449- env :
450- jobname : ${{matrix.vector.jobname}}
451- CC : ${{matrix.vector.cc}}
452- CI_JOB_IMAGE : ${{matrix.vector.image}}
453- CUSTOM_PATH : /custom
454- runs-on : ubuntu-latest
455- container :
456- image : ${{ matrix.vector.image }}
457- options : ${{ github.repository_visibility == 'private' && '--pids-limit 16384 --ulimit nproc=16384:16384 --ulimit nofile=32768:32768' || '' }}
458- steps :
459- - name : prepare libc6 for actions
460- if : matrix.vector.jobname == 'linux32'
461- run : apt -q update && apt -q -y install libc6-amd64 lib64stdc++6
462- - name : install git in container
463- run : |
464- if command -v git
465- then
466- : # nothing to do
467- elif command -v apk
468- then
469- apk add --update git
470- elif command -v dnf
471- then
472- dnf -yq update && dnf -yq install git
473- else
474- apt-get -q update && apt-get -q -y install git
475- fi
476- - uses : actions/checkout@v6
477- - run : ci/install-dependencies.sh
478- - run : useradd builder --create-home
479- - run : chown -R builder .
480- - run : chmod a+w $GITHUB_ENV && sudo --preserve-env --set-home --user=builder ci/run-build-and-tests.sh
481- - name : print test failures
482- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
483- run : sudo --preserve-env --set-home --user=builder ci/print-test-failures.sh
484- - name : Upload failed tests' directories
485- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
486- uses : actions/upload-artifact@v7
487- with :
488- name : failed-tests-${{matrix.vector.jobname}}
489- path : ${{env.FAILED_TEST_ARTIFACTS}}
490- static-analysis :
491- needs : ci-config
492- if : needs.ci-config.outputs.enabled == 'yes'
493- env :
494- jobname : StaticAnalysis
495- CI_JOB_IMAGE : ubuntu-22.04
496- runs-on : ubuntu-22.04
497- concurrency :
498- group : static-analysis-${{ github.ref }}
499- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
500- steps :
501- - uses : actions/checkout@v6
502- - run : ci/install-dependencies.sh
503- - run : ci/run-static-analysis.sh
504- - run : ci/check-directional-formatting.bash
505- rust-analysis :
506- needs : ci-config
507- if : needs.ci-config.outputs.enabled == 'yes'
508- env :
509- jobname : RustAnalysis
510- CI_JOB_IMAGE : ubuntu:rolling
511- runs-on : ubuntu-latest
512- container : ubuntu:rolling
513- concurrency :
514- group : rust-analysis-${{ github.ref }}
515- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
516- steps :
517- - uses : actions/checkout@v6
518- - run : ci/install-dependencies.sh
519- - run : ci/run-rust-checks.sh
520- sparse :
521- needs : ci-config
522- if : needs.ci-config.outputs.enabled == 'yes'
523- env :
524- jobname : sparse
525- CI_JOB_IMAGE : ubuntu-22.04
526- runs-on : ubuntu-22.04
527- concurrency :
528- group : sparse-${{ github.ref }}
529- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
530- steps :
531- - uses : actions/checkout@v6
532- - name : Install other dependencies
533- run : ci/install-dependencies.sh
534- - run : make sparse
535- documentation :
536- name : documentation
537- needs : ci-config
538- if : needs.ci-config.outputs.enabled == 'yes'
539- concurrency :
540- group : documentation-${{ github.ref }}
541- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
542- env :
543- jobname : Documentation
544- CI_JOB_IMAGE : ubuntu-latest
545- runs-on : ubuntu-latest
546- steps :
547- - uses : actions/checkout@v6
548- - run : ci/install-dependencies.sh
549- - run : ci/test-documentation.sh
0 commit comments