@@ -102,269 +102,6 @@ jobs:
102102 } catch (e) {
103103 core.warning(e);
104104 }
105-
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}} + 1)) 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}} + 1)) 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-
252- windows-meson-build :
253- name : win+Meson build
254- needs : ci-config
255- if : needs.ci-config.outputs.enabled == 'yes'
256- runs-on : windows-latest
257- concurrency :
258- group : windows-meson-build-${{ github.ref }}
259- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
260- steps :
261- - uses : actions/checkout@v5
262- - uses : actions/setup-python@v6
263- - name : Set up dependencies
264- shell : pwsh
265- run : pip install meson ninja
266- - name : Setup
267- shell : pwsh
268- run : meson setup build --vsenv -Dbuildtype=release -Dperl=disabled -Dcredential_helpers=wincred
269- - name : Compile
270- shell : pwsh
271- run : meson compile -C build
272- - name : Upload build artifacts
273- uses : actions/upload-artifact@v5
274- with :
275- name : windows-meson-artifacts
276- path : build
277- windows-meson-test :
278- name : win+Meson test
279- runs-on : windows-latest
280- needs : [ci-config, windows-meson-build]
281- strategy :
282- fail-fast : false
283- matrix :
284- nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
285- concurrency :
286- group : windows-meson-test-${{ matrix.nr }}-${{ github.ref }}
287- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
288- steps :
289- - uses : actions/checkout@v5
290- - uses : actions/setup-python@v6
291- - name : Set up dependencies
292- shell : pwsh
293- run : pip install meson ninja
294- - name : Download build artifacts
295- uses : actions/download-artifact@v6
296- with :
297- name : windows-meson-artifacts
298- path : build
299- - name : Test
300- shell : bash
301- run : ci/run-test-slice-meson.sh build $((${{matrix.nr}} + 1)) 10
302- - name : print test failures
303- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
304- shell : bash
305- run : ci/print-test-failures.sh
306- - name : Upload failed tests' directories
307- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
308- uses : actions/upload-artifact@v4
309- with :
310- name : failed-tests-windows-meson-${{ matrix.nr }}
311- path : ${{env.FAILED_TEST_ARTIFACTS}}
312-
313- regular :
314- name : ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
315- needs : ci-config
316- if : needs.ci-config.outputs.enabled == 'yes'
317- concurrency :
318- group : ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
319- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
320- strategy :
321- fail-fast : false
322- matrix :
323- vector :
324- - jobname : osx-clang
325- cc : clang
326- pool : macos-14
327- - jobname : osx-reftable
328- cc : clang
329- pool : macos-14
330- - jobname : osx-gcc
331- cc : gcc-13
332- pool : macos-14
333- - jobname : osx-meson
334- cc : clang
335- pool : macos-14
336- env :
337- CC : ${{matrix.vector.cc}}
338- CC_PACKAGE : ${{matrix.vector.cc_package}}
339- jobname : ${{matrix.vector.jobname}}
340- CI_JOB_IMAGE : ${{matrix.vector.pool}}
341- TEST_OUTPUT_DIRECTORY : ${{github.workspace}}/t
342- runs-on : ${{matrix.vector.pool}}
343- steps :
344- - uses : actions/checkout@v5
345- - run : ci/install-dependencies.sh
346- - run : ci/run-build-and-tests.sh
347- - name : print test failures
348- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
349- run : ci/print-test-failures.sh
350- - name : Upload failed tests' directories
351- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
352- uses : actions/upload-artifact@v5
353- with :
354- name : failed-tests-${{matrix.vector.jobname}}
355- path : ${{env.FAILED_TEST_ARTIFACTS}}
356- fuzz-smoke-test :
357- name : fuzz smoke test
358- needs : ci-config
359- if : needs.ci-config.outputs.enabled == 'yes'
360- env :
361- CC : clang
362- CI_JOB_IMAGE : ubuntu-latest
363- runs-on : ubuntu-latest
364- steps :
365- - uses : actions/checkout@v5
366- - run : ci/install-dependencies.sh
367- - run : ci/run-build-and-minimal-fuzzers.sh
368105 dockerized :
369106 name : ${{matrix.vector.jobname}} (${{matrix.vector.image}})
370107 needs : ci-config
@@ -376,44 +113,12 @@ jobs:
376113 fail-fast : false
377114 matrix :
378115 vector :
379- - jobname : linux-sha256
380- image : ubuntu:rolling
381- cc : clang
382- - jobname : linux-reftable
383- image : ubuntu:rolling
384- cc : clang
385- - jobname : linux-TEST-vars
386- image : ubuntu:20.04
387- cc : gcc
388- cc_package : gcc-8
389- - jobname : linux-breaking-changes
390- cc : gcc
391- image : ubuntu:rolling
392- - jobname : fedora-breaking-changes-meson
393- image : fedora:latest
394116 - jobname : linux-leaks
395117 image : ubuntu:rolling
396118 cc : gcc
397119 - jobname : linux-reftable-leaks
398120 image : ubuntu:rolling
399121 cc : gcc
400- - jobname : linux-asan-ubsan
401- image : ubuntu:rolling
402- cc : clang
403- - jobname : linux-meson
404- image : ubuntu:rolling
405- cc : gcc
406- - jobname : linux-musl-meson
407- image : alpine:latest
408- # Supported until 2025-04-02.
409- - jobname : linux32
410- image : i386/ubuntu:focal
411- # A RHEL 8 compatible distro. Supported until 2029-05-31.
412- - jobname : almalinux-8
413- image : almalinux:8
414- # Supported until 2026-08-31.
415- - jobname : debian-11
416- image : debian:11
417122 env :
418123 jobname : ${{matrix.vector.jobname}}
419124 CC : ${{matrix.vector.cc}}
@@ -453,63 +158,3 @@ jobs:
453158 with :
454159 name : failed-tests-${{matrix.vector.jobname}}
455160 path : ${{env.FAILED_TEST_ARTIFACTS}}
456- static-analysis :
457- needs : ci-config
458- if : needs.ci-config.outputs.enabled == 'yes'
459- env :
460- jobname : StaticAnalysis
461- CI_JOB_IMAGE : ubuntu-22.04
462- runs-on : ubuntu-22.04
463- concurrency :
464- group : static-analysis-${{ github.ref }}
465- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
466- steps :
467- - uses : actions/checkout@v5
468- - run : ci/install-dependencies.sh
469- - run : ci/run-static-analysis.sh
470- - run : ci/check-directional-formatting.bash
471- rust-analysis :
472- needs : ci-config
473- if : needs.ci-config.outputs.enabled == 'yes'
474- env :
475- jobname : RustAnalysis
476- CI_JOB_IMAGE : ubuntu:rolling
477- runs-on : ubuntu-latest
478- container : ubuntu:rolling
479- concurrency :
480- group : rust-analysis-${{ github.ref }}
481- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
482- steps :
483- - uses : actions/checkout@v4
484- - run : ci/install-dependencies.sh
485- - run : ci/run-rust-checks.sh
486- sparse :
487- needs : ci-config
488- if : needs.ci-config.outputs.enabled == 'yes'
489- env :
490- jobname : sparse
491- CI_JOB_IMAGE : ubuntu-22.04
492- runs-on : ubuntu-22.04
493- concurrency :
494- group : sparse-${{ github.ref }}
495- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
496- steps :
497- - uses : actions/checkout@v5
498- - name : Install other dependencies
499- run : ci/install-dependencies.sh
500- - run : make sparse
501- documentation :
502- name : documentation
503- needs : ci-config
504- if : needs.ci-config.outputs.enabled == 'yes'
505- concurrency :
506- group : documentation-${{ github.ref }}
507- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
508- env :
509- jobname : Documentation
510- CI_JOB_IMAGE : ubuntu-latest
511- runs-on : ubuntu-latest
512- steps :
513- - uses : actions/checkout@v5
514- - run : ci/install-dependencies.sh
515- - run : ci/test-documentation.sh
0 commit comments