@@ -103,321 +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@v4
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@v4
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@v4
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@v4
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@v4
177- - uses : git-for-windows/setup-git-for-windows-sdk@v1
178- - name : initialize vcpkg
179- uses : actions/checkout@v4
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@v4
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@v4
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@v4
248- with :
249- name : failed-tests-windows-vs-${{ matrix.nr }}
250- path : ${{env.FAILED_TEST_ARTIFACTS}}
251- regular :
252- name : ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
253- needs : ci-config
254- if : needs.ci-config.outputs.enabled == 'yes'
255- concurrency :
256- group : ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
257- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
258- strategy :
259- fail-fast : false
260- matrix :
261- vector :
262- - jobname : linux-sha256
263- cc : clang
264- pool : ubuntu-latest
265- - jobname : linux-reftable
266- cc : clang
267- pool : ubuntu-latest
268- - jobname : linux-gcc
269- cc : gcc
270- cc_package : gcc-8
271- pool : ubuntu-20.04
272- - jobname : linux-TEST-vars
273- cc : gcc
274- cc_package : gcc-8
275- pool : ubuntu-20.04
276- - jobname : osx-clang
277- cc : clang
278- pool : macos-13
279- - jobname : osx-reftable
280- cc : clang
281- pool : macos-13
282- - jobname : osx-gcc
283- cc : gcc-13
284- pool : macos-13
285- - jobname : osx-meson
286- cc : clang
287- pool : macos-13
288- - jobname : linux-gcc-default
289- cc : gcc
290- pool : ubuntu-latest
291- - jobname : linux-leaks
292- cc : gcc
293- pool : ubuntu-latest
294- - jobname : linux-reftable-leaks
295- cc : gcc
296- pool : ubuntu-latest
297- - jobname : linux-asan-ubsan
298- cc : clang
299- pool : ubuntu-latest
300- - jobname : linux-meson
301- cc : gcc
302- pool : ubuntu-latest
303- env :
304- CC : ${{matrix.vector.cc}}
305- CC_PACKAGE : ${{matrix.vector.cc_package}}
306- jobname : ${{matrix.vector.jobname}}
307- distro : ${{matrix.vector.pool}}
308- TEST_OUTPUT_DIRECTORY : ${{github.workspace}}/t
309- runs-on : ${{matrix.vector.pool}}
310- steps :
311- - uses : actions/checkout@v4
312- - run : ci/install-dependencies.sh
313- - run : ci/run-build-and-tests.sh
314- - name : print test failures
315- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
316- run : ci/print-test-failures.sh
317- - name : Upload failed tests' directories
318- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
319- uses : actions/upload-artifact@v4
320- with :
321- name : failed-tests-${{matrix.vector.jobname}}
322- path : ${{env.FAILED_TEST_ARTIFACTS}}
323- fuzz-smoke-test :
324- name : fuzz smoke test
325- needs : ci-config
326- if : needs.ci-config.outputs.enabled == 'yes'
327- env :
328- CC : clang
329- runs-on : ubuntu-latest
330- steps :
331- - uses : actions/checkout@v4
332- - run : ci/install-dependencies.sh
333- - run : ci/run-build-and-minimal-fuzzers.sh
334- dockerized :
335- name : ${{matrix.vector.jobname}} (${{matrix.vector.image}})
336- needs : ci-config
337- if : needs.ci-config.outputs.enabled == 'yes'
338- concurrency :
339- group : dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
340- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
341- strategy :
342- fail-fast : false
343- matrix :
344- vector :
345- - jobname : linux-musl
346- image : alpine
347- distro : alpine-latest
348- # Supported until 2025-04-02.
349- - jobname : linux32
350- image : i386/ubuntu:focal
351- distro : ubuntu32-20.04
352- - jobname : pedantic
353- image : fedora
354- distro : fedora-latest
355- # A RHEL 8 compatible distro. Supported until 2029-05-31.
356- - jobname : almalinux-8
357- image : almalinux:8
358- distro : almalinux-8
359- # Supported until 2026-08-31.
360- - jobname : debian-11
361- image : debian:11
362- distro : debian-11
363- env :
364- jobname : ${{matrix.vector.jobname}}
365- distro : ${{matrix.vector.distro}}
366- runs-on : ubuntu-latest
367- container : ${{matrix.vector.image}}
368- steps :
369- - name : prepare libc6 for actions
370- if : matrix.vector.jobname == 'linux32'
371- run : apt -q update && apt -q -y install libc6-amd64 lib64stdc++6
372- - uses : actions/checkout@v4
373- - run : ci/install-dependencies.sh
374- - run : ci/run-build-and-tests.sh
375- - name : print test failures
376- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
377- run : ci/print-test-failures.sh
378- - name : Upload failed tests' directories
379- if : failure() && env.FAILED_TEST_ARTIFACTS != ''
380- uses : actions/upload-artifact@v4
381- with :
382- name : failed-tests-${{matrix.vector.jobname}}
383- path : ${{env.FAILED_TEST_ARTIFACTS}}
384- static-analysis :
385- needs : ci-config
386- if : needs.ci-config.outputs.enabled == 'yes'
387- env :
388- jobname : StaticAnalysis
389- runs-on : ubuntu-22.04
390- concurrency :
391- group : static-analysis-${{ github.ref }}
392- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
393- steps :
394- - uses : actions/checkout@v4
395- - run : ci/install-dependencies.sh
396- - run : ci/run-static-analysis.sh
397- - run : ci/check-directional-formatting.bash
398- sparse :
399- needs : ci-config
400- if : needs.ci-config.outputs.enabled == 'yes'
401- env :
402- jobname : sparse
403- runs-on : ubuntu-20.04
404- concurrency :
405- group : sparse-${{ github.ref }}
406- cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
407- steps :
408- - name : Download a current `sparse` package
409- # Ubuntu's `sparse` version is too old for us
410- uses : git-for-windows/get-azure-pipelines-artifact@v0
411- with :
412- repository : git/git
413- definitionId : 10
414- artifact : sparse-20.04
415- - name : Install the current `sparse` package
416- run : sudo dpkg -i sparse-20.04/sparse_*.deb
417- - uses : actions/checkout@v4
418- - name : Install other dependencies
419- run : ci/install-dependencies.sh
420- - run : make sparse
421106 documentation :
422107 name : documentation
423108 needs : ci-config
0 commit comments