Make `test-ci` not depend on the `testdeps` target. `test-ci` is designed to run curl tests in CI. In CI we build all necessary dependencies explicitly beforehand, and they are always ready when calling the `test-ci` step. Thus, it isn't necessary to enforce them via a dependency rule. Dropping it saves redundant work and delay in CI jobs. The `testdeps` dependency should not normally be a problem. It's supposed to be a no-op if those targets are already built. In practice however, it causes a delay and/or an actual rebuild of those dependencies depending on generator (= build tool) used and other factors. As observed in the GHA/windows workflow, the `testdeps` dependency: - with Ninja, causes no delay, and no extra work: https://github.com/curl/curl/actions/runs/10980099984/job/30485440389#step:25:18 - with GNU Make, caused a re-evaluation of `testdeps` targets, but did not actually rebuild them. This re-evaluation took a noticeable time (esp. with non-bundled tests): https://github.com/curl/curl/actions/runs/10980099984/job/30485440155#step:14:11 (with bundles) https://github.com/curl/curl/actions/runs/10973851013/job/30471690331#step:14:11 (w/o bundles) verbose: https://github.com/curl/curl/actions/runs/10980506956/job/30486434629#step:14:13 - with MSBuild, caused a re-evaluation of `testdeps` targets, and triggered a _rebuild_: https://github.com/curl/curl/actions/runs/10980099984/job/30485435968#step:14:19 (with bundles) https://github.com/curl/curl/actions/runs/10973851013/job/30471689714#step:14:19 (w/o bundles) verbose: https://github.com/curl/curl/actions/runs/10980506956/job/30486436368#step:14:48 It's suspected that our use of `-DCMAKE_VS_GLOBALS=TrackFileAccess=false` in CI is contributing to this. This option is supposed to affect incremental builds only. For some reason it affects CI builds too, even though they are not incremental, and no sources are changed between build steps. Reported-by: Aki Sakurai Ref: #14999 Notice that `test-*` targets depending on `testdeps` is NOT sufficient to build everything to run tests, e.g. it misses to build the curl tool, which is essential. This is also true for autotools' `test-ci` target which misses to build libcurl and the curl tool. Perhaps it'd be best to drop `testdeps` as a dependency for _all_ `test-*` targets and make it official to require building dependencies manually. Alternatively these targets could be fixed to rebuild everything necessary to run tests. Closes #15001 |
||
|---|---|---|
| .circleci | ||
| .github | ||
| CMake | ||
| docs | ||
| include | ||
| lib | ||
| LICENSES | ||
| m4 | ||
| packages | ||
| plan9 | ||
| projects | ||
| scripts | ||
| src | ||
| tests | ||
| winbuild | ||
| .dir-locals.el | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| acinclude.m4 | ||
| appveyor.sh | ||
| appveyor.yml | ||
| buildconf | ||
| buildconf.bat | ||
| CHANGES.md | ||
| CMakeLists.txt | ||
| configure.ac | ||
| COPYING | ||
| curl-config.in | ||
| Dockerfile | ||
| GIT-INFO.md | ||
| libcurl.pc.in | ||
| Makefile.am | ||
| Makefile.dist | ||
| README | ||
| README.md | ||
| RELEASE-NOTES | ||
| renovate.json | ||
| REUSE.toml | ||
| SECURITY.md | ||
Curl is a command-line tool for transferring data specified with URL syntax. Learn how to use curl by reading the manpage or everything curl.
Find out how to install curl by reading the INSTALL document.
libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl manpage to learn how.
Open Source
curl is Open Source and is distributed under an MIT-like license.
Contact
Contact us on a suitable mailing list or use GitHub issues/ pull requests/ discussions.
All contributors to the project are listed in the THANKS document.
Commercial support
For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.
Website
Visit the curl website for the latest news and downloads.
Source code
Download the latest source from the Git server:
git clone https://github.com/curl/curl.git
Security problems
Report suspected security problems via our HackerOne page and not in public.
Notice
Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.
Backers
Thank you to all our backers! 🙏 Become a backer.
Sponsors
Support this project by becoming a sponsor.