From 01c25e3b008085a7944f3eea4971f5eb469a6c49 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 24 Feb 2025 19:59:23 +0100 Subject: [PATCH] CI: misc improvements, restore VS2008 job - appveyor: restore VS2008 job, after fixing its issues. Enable OpenSSL in it. It takes 1 minute. Follow-up to 9b0467b169e08b70077f09313975d4eac14a9930 #16453 Follow-up to edfa537100d6b5d2ac1b829c66757880afe59407 #16456 - appveyor: make a copy of OpenSSL DLLs to have them picked up as an artifact (disabled by default) to aid local tests. - appveyor: dump CMake configuration logs on failure. - appveyor: tidy up job parameter defaults. - GHA/windows: add pre-fill check option for dl-mingw jobs. - GHA/windows: fix pre-fill check option for MSYS jobs by installing `diffutils`. Follow-up to e7adf3e83747c2915c671f2e560cde6f3d4a4905 #15841 - GHA/windows: de-duplicate to `PATH` commands for Cygwin. - GHA/windows: drop `$SYSTEMROOT/System32` from `PATH` for Cygwin configure. It's not needed. Follow-up to 36fd2dd6ee874726c628e67fcf6415a2e52bfe29 #13599 - list `.pdb` files in curl version step for MSVC. Ref: #16439 Cherry-picked from #16394 Closes #16458 --- .github/workflows/windows.yml | 32 ++++++++++++++++---------- appveyor.sh | 20 +++++++++------- appveyor.yml | 43 +++++++++++------------------------ 3 files changed, 45 insertions(+), 50 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 8265d3b703..ba2ad3561a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -83,14 +83,13 @@ jobs: - name: 'configure' timeout-minutes: 5 run: | + PATH=/usr/bin if [ '${{ matrix.build }}' = 'cmake' ]; then - PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32" cmake -B bld -G Ninja -D_CURL_PREFILL=ON ${options} \ -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=30 -DCURL_TEST_BUNDLES=ON \ -DCURL_WERROR=ON \ ${{ matrix.config }} else - PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32" mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \ --prefix="${HOME}"/install \ --with-openssl \ @@ -205,6 +204,7 @@ jobs: libnghttp2-devel libpsl-devel libssh2-devel + ${{ matrix.chkprefill == '_chkprefill' && 'diffutils' || '' }} - uses: msys2/setup-msys2@d44ca8e88d8b43d56cf5670f91747359d5537f97 # v2 if: ${{ matrix.sys != 'msys' }} @@ -426,15 +426,23 @@ jobs: timeout-minutes: 5 run: | PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH" - [ '${{ matrix.type }}' = 'Debug' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=' - [ '${{ matrix.type }}' = 'Release' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=' - cmake -B bld -G 'MSYS Makefiles' ${options} \ - -DCMAKE_C_COMPILER=gcc \ - -DCMAKE_BUILD_TYPE='${{ matrix.type }}' \ - -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=30 -DCURL_TEST_BUNDLES=ON \ - -DCURL_WERROR=ON \ - -DCURL_USE_LIBPSL=OFF \ - ${{ matrix.config }} + for _chkprefill in '' ${{ matrix.chkprefill }}; do + options='' + [ '${{ matrix.type }}' = 'Debug' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=' + [ '${{ matrix.type }}' = 'Release' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=' + [ "${_chkprefill}" = '_chkprefill' ] && options+=' -D_CURL_PREFILL=OFF' + cmake -B "bld${_chkprefill}" -G 'MSYS Makefiles' ${options} \ + -DCMAKE_C_COMPILER=gcc \ + -DCMAKE_BUILD_TYPE='${{ matrix.type }}' \ + -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=30 -DCURL_TEST_BUNDLES=ON \ + -DCURL_WERROR=ON \ + -DCURL_USE_LIBPSL=OFF \ + ${{ matrix.config }} + done + if [ -d bld_chkprefill ] && ! diff -u bld/lib/curl_config.h bld_chkprefill/lib/curl_config.h; then + echo '::group::reference configure log'; cat bld_chkprefill/CMakeFiles/CMake*.yaml 2>/dev/null || true; echo '::endgroup::' + false + fi - name: 'configure log' if: ${{ !cancelled() }} @@ -856,7 +864,7 @@ jobs: - name: 'curl version' timeout-minutes: 1 run: | - PATH=/usr/bin find . \( -name '*.exe' -o -name '*.dll' -o -name '*.lib' \) -exec file '{}' \; + PATH=/usr/bin find . \( -name '*.exe' -o -name '*.dll' -o -name '*.lib' -o -name '*.pdb' \) -exec file '{}' \; if [ '${{ matrix.plat }}' != 'uwp' ]; then # Missing: ucrtbased.dll, VCRUNTIME140D.dll, VCRUNTIME140D_APP.dll PATH="$PWD/bld/lib/${{ matrix.type }}:$PATH" 'bld/src/${{ matrix.type }}/curl.exe' --disable --version diff --git a/appveyor.sh b/appveyor.sh index 9388a6d33b..ed1bf83058 100644 --- a/appveyor.sh +++ b/appveyor.sh @@ -65,20 +65,24 @@ if [ "${BUILD_SYSTEM}" = 'CMake' ]; then -DCURL_USE_SCHANNEL="${SCHANNEL}" \ -DCURL_USE_OPENSSL="${OPENSSL}" \ -DCURL_USE_LIBPSL=OFF \ - ${options} + ${options} \ + || { cat _bld/CMakeFiles/CMake* 2>/dev/null; false; } done if [ -d _bld_chkprefill ] && ! diff -u _bld/lib/curl_config.h _bld_chkprefill/lib/curl_config.h; then - cat _bld_chkprefill/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true + cat _bld_chkprefill/CMakeFiles/CMake* 2>/dev/null || true false fi - if false; then - cat _bld/CMakeFiles/CMakeConfigureLog.yaml 2>/dev/null || true - fi echo 'curl_config.h'; grep -F '#define' _bld/lib/curl_config.h | sort || true # shellcheck disable=SC2086 - cmake --build _bld --config "${PRJ_CFG}" --parallel 2 -- ${BUILD_OPT:-} + if ! cmake --build _bld --config "${PRJ_CFG}" --parallel 2 -- ${BUILD_OPT:-}; then + if [ "${PRJ_GEN}" = 'Visual Studio 9 2008' ]; then + find . -name BuildLog.htm -exec dos2unix '{}' + + find . -name BuildLog.htm -exec cat '{}' + + fi + false + fi [ "${SHARED}" = 'ON' ] && PATH="$PWD/_bld/lib/${PRJ_CFG}:$PATH" - [ "${OPENSSL}" = 'ON' ] && PATH="${openssl_root}:$PATH" + [ "${OPENSSL}" = 'ON' ] && { PATH="${openssl_root}:$PATH"; cp "${openssl_root}"/*.dll "_bld/src/${PRJ_CFG}"; } curl="_bld/src/${PRJ_CFG}/curl.exe" elif [ "${BUILD_SYSTEM}" = 'VisualStudioSolution' ]; then ( @@ -112,7 +116,7 @@ EOF curl="builds/libcurl-vc14.10-x64-${PATHPART}-dll-ssl-dll-ipv6-sspi/bin/curl.exe" fi -find . \( -name '*.exe' -o -name '*.dll' -o -name '*.lib' \) -exec file '{}' \; +find . \( -name '*.exe' -o -name '*.dll' -o -name '*.lib' -o -name '*.pdb' \) -exec file '{}' \; if [ -z "${SKIP_RUN:-}" ]; then "${curl}" --disable --version else diff --git a/appveyor.yml b/appveyor.yml index d08f0aa7d6..124fa3d479 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -31,8 +31,11 @@ version: 7.50.0.{build} environment: + BUILD_SYSTEM: CMake UNITY: 'ON' OPENSSL: 'OFF' + SCHANNEL: 'OFF' + ENABLE_UNICODE: 'OFF' DEBUG: 'ON' SHARED: 'OFF' HTTP_ONLY: 'OFF' @@ -45,89 +48,77 @@ environment: - job_name: 'CMake, VS2022, Release, x64, OpenSSL 3.4, Shared, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A x64' PRJ_CFG: Release OPENSSL: 'ON' - SCHANNEL: 'OFF' - ENABLE_UNICODE: 'OFF' SHARED: 'ON' - job_name: 'CMake, VS2022, Release, arm64, Schannel, Static, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A ARM64' PRJ_CFG: Release SCHANNEL: 'ON' - ENABLE_UNICODE: 'OFF' DEBUG: 'OFF' CURLDEBUG: 'ON' + - job_name: 'CMake, VS2008, Debug, x86, OpenSSL 1.1.1 + Schannel, Shared, Build-tests & examples' + APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' + PRJ_GEN: 'Visual Studio 9 2008' + TARGET: '-A Win32' + PRJ_CFG: Debug + OPENSSL: 'ON' + SCHANNEL: 'ON' + SHARED: 'ON' + EXAMPLES: 'OFF' - job_name: 'CMake, VS2010, Debug, x64, Schannel, Shared, Build-tests & examples' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 10 2010' TARGET: '-A x64' PRJ_CFG: Debug SCHANNEL: 'ON' - ENABLE_UNICODE: 'OFF' SHARED: 'ON' EXAMPLES: 'ON' - job_name: 'CMake, VS2012, Release, x86, OpenSSL 1.1.1 + Schannel, Shared, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 11 2012' TARGET: '-A Win32' PRJ_CFG: Release OPENSSL: 'ON' SCHANNEL: 'ON' - ENABLE_UNICODE: 'OFF' SHARED: 'ON' - job_name: 'CMake, VS2013, Debug, x64, OpenSSL 1.1.1, Shared, Build-only' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 12 2013' TARGET: '-A x64' PRJ_CFG: Debug OPENSSL: 'ON' - SCHANNEL: 'OFF' - ENABLE_UNICODE: 'OFF' SHARED: 'ON' TFLAGS: 'skipall' - job_name: 'CMake, VS2015, Debug, x64, OpenSSL 1.1.1, Static, Build-only' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 14 2015' TARGET: '-A x64' PRJ_CFG: Debug OPENSSL: 'ON' - SCHANNEL: 'OFF' - ENABLE_UNICODE: 'OFF' TFLAGS: 'skipall' - job_name: 'CMake, VS2017, Debug, x64, OpenSSL 1.1.1, Shared, Build-only' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 15 2017' TARGET: '-A x64' PRJ_CFG: Debug OPENSSL: 'ON' - SCHANNEL: 'OFF' - ENABLE_UNICODE: 'OFF' SHARED: 'ON' TFLAGS: 'skipall' - job_name: 'CMake, VS2019, Debug, x64, OpenSSL 1.0.2 + Schannel, Shared, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 16 2019' TARGET: '-A x64' PRJ_CFG: Debug OPENSSL: 'ON' SCHANNEL: 'ON' - ENABLE_UNICODE: 'OFF' SHARED: 'ON' - job_name: 'CMake, VS2022, Debug, x64, Schannel, Static, Unicode, Build-tests & examples, clang-cl' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A x64' PRJ_CFG: Debug @@ -137,7 +128,6 @@ environment: TOOLSET: 'ClangCl' - job_name: 'CMake, VS2022, Debug, x64, Schannel, Static, Unicode, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A x64' PRJ_CFG: Debug @@ -145,7 +135,6 @@ environment: ENABLE_UNICODE: 'ON' - job_name: 'CMake, VS2022, Release, x64, Schannel, Shared, Unicode, DEBUGBUILD, no-CURLDEBUG, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A x64' PRJ_CFG: Release @@ -155,20 +144,14 @@ environment: CURLDEBUG: 'OFF' - job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A x64' PRJ_CFG: Debug - SCHANNEL: 'OFF' - ENABLE_UNICODE: 'OFF' - job_name: 'CMake, VS2022, Debug, x64, no SSL, Static, HTTP only, Build-tests' APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022' - BUILD_SYSTEM: CMake PRJ_GEN: 'Visual Studio 17 2022' TARGET: '-A x64' PRJ_CFG: Debug - SCHANNEL: 'OFF' - ENABLE_UNICODE: 'OFF' HTTP_ONLY: 'ON' # winbuild-based builds @@ -254,5 +237,5 @@ skip_commits: #artifacts: # - path: '**/curl.exe' # name: curl -# - path: '**/*curl*.dll' +# - path: '**/*.dll' # name: libcurl dll -- 2.47.3