curl-curl/.github/workflows
Viktor Szakats ce4db9c2ef
GHA/linux: replace scan-build with clang-tidy
`scan-build` is a (Perl) wrapper around clang's built-in `--analyze`
option. Which look similar or identical to clang-tidy checkers under
the `clang-analyzer-*` namespace:
https://clang.llvm.org/docs/ClangStaticAnalyzer.html

Unless somebody has other information, it appears redundant to run
scan-build in parallel with clang-tidy in CI, now that the latter is
working reliably and with good performance for all curl components.

Another scan-build issue is the lack of a markup to suppress false
positives. It ignores `NOLINT`, yet finds the same false positives as
clang-tidy. This happens with scan-build v20+. v18 is silent, but it's
a blocker to upgrade to a newer version.

scan-build may still be a useful when combined with autotools, where
clang-tidy support is incomplete, slow (no parallelism), and uses
a distinct make target, which does not build binaries in the same pass.
But, scan-build also lacks extra checkers that are now enabled for
clang-tidy.

The clang-tidy job is also 30-40s faster than the one it replaced.

Also:
- drop scan-build job configured the same way as a clang-tidy one.
  CI time saved: 6m30s
- bump to clang-20 (from 18) in the replacement job.
- build tests in the replacement job.
  To verify a cmake command-line reconstruction issue only hit in this
  job in CI.
  CI time cost: 1m40s
- replacement job caught a minor, new, issue.
  Ref: b2076d3c2f #20752
- drop unused scan-build logic.

Bug: https://github.com/curl/curl/pull/20732#issuecomment-3963873838
Ref: https://github.com/curl/curl/pull/20732#issuecomment-3967479228

Closes #20751
2026-02-27 14:08:59 +01:00
..
appveyor-status.yml GHA: switch 12 Linux jobs to arm64 2026-01-09 19:35:16 +01:00
checkdocs.yml GHA: bump GHA and pip dependencies 2026-02-01 16:40:37 +01:00
checksrc.yml GHA: bump GHA and pip dependencies 2026-02-01 16:40:37 +01:00
checkurls.yml GHA: bump GHA and pip dependencies 2026-02-01 16:40:37 +01:00
codeql.yml GHA: bump GHA and pip dependencies 2026-02-01 16:40:37 +01:00
configure-vs-cmake.yml GHA: bump GHA and pip dependencies 2026-02-01 16:40:37 +01:00
curl-for-win.yml GHA: bump GHA and pip dependencies 2026-02-01 16:40:37 +01:00
distcheck.yml cmake: add C++ integration test 2026-02-23 14:43:37 +01:00
fuzz.yml GHA: silence fresh zizmor 1.21.0 warnings 2026-01-16 13:48:28 +01:00
http3-linux.yml GHA: update ngtcp2/ngtcp2 to v1.21.0 2026-02-26 17:15:22 +01:00
label.yml GHA: use ubuntu-slim image in 3 jobs 2026-01-25 18:54:12 +01:00
linux-old.yml GHA/linux-old: use tilde where possible and consistent 2026-02-05 13:12:10 +01:00
linux.yml GHA/linux: replace scan-build with clang-tidy 2026-02-27 14:08:59 +01:00
macos.yml GHA/macos: bump runner to macos-26 in clang-tidy jobs 2026-02-26 19:24:32 +01:00
non-native.yml GHA/non-native: enable FreeBSD on arm again 2026-02-22 20:43:05 +01:00
windows.yml cmake: add native clang-tidy support for tests, with concatenated sources 2026-02-25 17:28:35 +01:00