mirror of
https://github.com/curl/curl.git
synced 2026-01-18 17:21:26 +01:00
GHA/linux: switch scan-build jobs to cmake (for 2x perf)
Somewhat unexpectedly, switching autotools jobs to identical (non-unity, non-debug, same options) cmake ones, makes them complete 2x faster. Most of it comes from cmake building shared libcurl only, while autotools was using defaults and building both, in two separate passes. Thers is about a minute (per job) of gain due to other reasons. Before: MultiSSL: 10m30: https://github.com/curl/curl/actions/runs/20656775456/job/59311070197 H3: 9m14s: https://github.com/curl/curl/actions/runs/20656775456/job/59311070204 After: MultiSSL: 4m52s: https://github.com/curl/curl/actions/runs/20658343323/job/59315501903 H3: 4m7s: https://github.com/curl/curl/actions/runs/20658343323/job/59315501918 H3: 5m4s: https://github.com/curl/curl/actions/runs/20659294959/job/59318215987 (autotools shared only, for comparison, not merged) Also: - drop building examples with scan-build in the second (shorter) job. This offers no extra coverage over the long job that has both GnuTLS and OpenSSL. Saving an extra ~30s. Closes #20159
This commit is contained in:
29
.github/workflows/linux.yml
vendored
29
.github/workflows/linux.yml
vendored
@@ -251,15 +251,15 @@ jobs:
|
||||
CC: clang
|
||||
configure-prefix: scan-build
|
||||
make-prefix: scan-build --status-bugs
|
||||
PKG_CONFIG_PATH: /home/linuxbrew/.linuxbrew/opt/gsasl/lib/pkgconfig
|
||||
LDFLAGS: -Wl,-rpath,/home/runner/wolfssl-opensslextra/lib -Wl,-rpath,/home/linuxbrew/.linuxbrew/opt/gsasl/lib
|
||||
configure: >-
|
||||
--with-wolfssl=/home/runner/wolfssl-opensslextra --with-openssl --with-rustls --with-mbedtls=/home/runner/mbedtls --with-gnutls --with-libgsasl
|
||||
--with-librtmp --with-libssh2 --with-libidn2
|
||||
--enable-ech --with-gssapi --enable-ssls-export
|
||||
--disable-debug --disable-unity --disable-typecheck
|
||||
LDFLAGS: -Wl,-rpath,/home/runner/wolfssl-opensslextra/lib -Wl,-rpath,/home/runner/mbedtls/lib -Wl,-rpath,/home/runner/rustls/lib -Wl,-rpath,/home/linuxbrew/.linuxbrew/opt/gsasl/lib
|
||||
PKG_CONFIG_PATH: /home/runner/wolfssl-opensslextra/lib/pkgconfig:/home/runner/mbedtls/lib/pkgconfig:/home/runner/rustls/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/gsasl/lib/pkgconfig
|
||||
generate: >-
|
||||
-DCURL_USE_OPENSSL=ON -DCURL_USE_WOLFSSL=ON -DCURL_USE_GNUTLS=ON -DCURL_USE_MBEDTLS=ON -DCURL_USE_RUSTLS=ON
|
||||
-DCURL_USE_GSASL=ON -DUSE_LIBRTMP=ON
|
||||
-DUSE_ECH=ON -DCURL_USE_GSSAPI=ON -DUSE_SSLS_EXPORT=ON
|
||||
-DCMAKE_UNITY_BUILD=OFF -DCURL_DISABLE_TYPECHECK=ON
|
||||
|
||||
- name: 'scan-build H3 c-ares'
|
||||
- name: 'scan-build H3 c-ares !examples'
|
||||
install_packages: clang-tools clang libidn2-dev libssh-dev libnghttp2-dev
|
||||
install_steps: skipall
|
||||
install_steps_brew: openssl libngtcp2 libnghttp3 c-ares
|
||||
@@ -268,11 +268,11 @@ jobs:
|
||||
make-prefix: scan-build --status-bugs
|
||||
LDFLAGS: -Wl,-rpath,/home/linuxbrew/.linuxbrew/opt/openssl/lib -Wl,-rpath,/home/linuxbrew/.linuxbrew/opt/libngtcp2/lib -Wl,-rpath,/home/linuxbrew/.linuxbrew/opt/libnghttp3/lib -Wl,-rpath,/home/linuxbrew/.linuxbrew/opt/c-ares/lib
|
||||
PKG_CONFIG_PATH: /home/linuxbrew/.linuxbrew/opt/libngtcp2/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/libnghttp3/lib/pkgconfig:/home/linuxbrew/.linuxbrew/opt/c-ares/lib/pkgconfig
|
||||
configure: >-
|
||||
--with-openssl=/home/linuxbrew/.linuxbrew/opt/openssl --with-ngtcp2 --with-nghttp3=
|
||||
--with-libidn2 --with-libssh --enable-httpsrr --enable-ares
|
||||
--disable-debug --disable-unity --disable-typecheck
|
||||
--disable-verbose
|
||||
generate: >-
|
||||
-DCURL_USE_OPENSSL=ON -DOPENSSL_ROOT_DIR=/home/linuxbrew/.linuxbrew/opt/openssl -DUSE_NGTCP2=ON
|
||||
-DCURL_USE_LIBSSH2=OFF -DCURL_USE_LIBSSH=ON -DUSE_HTTPSRR=ON -DENABLE_ARES=ON
|
||||
-DCMAKE_UNITY_BUILD=OFF -DCURL_DISABLE_TYPECHECK=ON
|
||||
-DCURL_DISABLE_VERBOSE_STRINGS=ON
|
||||
|
||||
- name: 'address-sanitizer'
|
||||
install_packages: clang libssl-dev libssh-dev libidn2-dev libnghttp2-dev libubsan1 libasan8 libtsan2
|
||||
@@ -689,6 +689,7 @@ jobs:
|
||||
[[ "${MATRIX_INSTALL_STEPS}" = *'awslc'* ]] && sudo apt-get -o Dpkg::Use-Pty=0 purge libssl-dev
|
||||
[ -n "${MATRIX_PKG_CONFIG_PATH}" ] && export PKG_CONFIG_PATH="${MATRIX_PKG_CONFIG_PATH}"
|
||||
if [ "${MATRIX_BUILD}" = 'cmake' ]; then
|
||||
${MATRIX_CONFIGURE_PREFIX} \
|
||||
cmake -B bld -G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX="$HOME"/curl-install \
|
||||
-DCMAKE_C_COMPILER_TARGET="$(uname -m)-pc-linux-gnu" -DBUILD_STATIC_LIBS=ON \
|
||||
@@ -818,7 +819,7 @@ jobs:
|
||||
../.github/scripts/randcurl.pl 60 ../bld/src/curl
|
||||
|
||||
- name: 'build examples'
|
||||
if: ${{ !contains(matrix.build.install_packages, 'valgrind') && matrix.build.make-custom-target != 'tidy' }}
|
||||
if: ${{ !contains(matrix.build.install_packages, 'valgrind') && matrix.build.make-custom-target != 'tidy' && !contains(matrix.build.name, '!examples') }}
|
||||
run: |
|
||||
if [ "${MATRIX_BUILD}" = 'cmake' ]; then
|
||||
${MATRIX_MAKE_PREFIX} cmake --build bld --verbose --target curl-examples-build
|
||||
|
||||
Reference in New Issue
Block a user