From: Tal Regev Date: Fri, 21 Jun 2024 13:12:07 +0000 (+0300) Subject: GHA: add MSVC UWP job, expand jobs with more options X-Git-Tag: curl-8_9_0~100 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cb22cfca69bded45bf7f9c72c8e6764990490f11;p=thirdparty%2Fcurl.git GHA: add MSVC UWP job, expand jobs with more options - add new dependencies: brotli, libpsl (requires libicu2) and gsasl. - enable WinIDN in a job. Exclude failing tests. - add UWP job and fix the build logic to support it. - increase timeouts to build the new dependencies. Assisted-by: Viktor Szakats Closes #14077 --- diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index ecfe613c57..867a61c173 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -421,7 +421,7 @@ jobs: msvc: name: 'msvc (${{ matrix.arch }}, ${{ matrix.plat }}, ${{ matrix.name }})' runs-on: windows-latest - timeout-minutes: 30 + timeout-minutes: 55 env: VCPKG_DISABLE_METRICS: '1' strategy: @@ -429,26 +429,33 @@ jobs: include: # name should be unique and without special chars. It creates a folder with that name for the cache. - name: 'schannel' - install: 'zstd zlib nghttp2 libssh2[core,zlib]' + install: 'brotli zlib zstd libpsl nghttp2 libssh2[core,zlib] pkgconf gsasl' arch: 'x64' plat: 'windows' type: 'Debug' - tflags: '~1516 ~2301 ~2302 ~2303 ~2307' - config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=ON -DCURL_USE_SCHANNEL=ON -DCURL_ZSTD=ON -DUSE_NGHTTP2=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_LIBSSH2=ON' + tflags: '~1516 ~2301 ~2302 ~2303 ~2307 ~165 ~1448 ~2046 ~2047' + config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=ON -DCURL_USE_SCHANNEL=ON -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBPSL=ON -DUSE_NGHTTP2=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_LIBSSH2=ON -DUSE_WIN32_IDN=ON -DCURL_USE_GSASL=ON' - name: 'openssl' - install: 'zstd zlib nghttp2 nghttp3 openssl libssh2' + install: 'brotli zlib zstd libpsl nghttp2 nghttp3 openssl libssh2 pkgconf gsasl' arch: 'x64' plat: 'windows' type: 'Debug' tflags: '~1516 ~2301 ~2302 ~2303 ~2307' - config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=OFF -DCURL_USE_SCHANNEL=OFF -DCURL_ZSTD=ON -DUSE_NGHTTP2=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_LIBSSH2=ON -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON' + config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=OFF -DCURL_USE_SCHANNEL=OFF -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBPSL=ON -DUSE_NGHTTP2=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_LIBSSH2=ON -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON -DCURL_USE_GSASL=ON' + - name: 'openssl' + install: 'brotli zlib zstd nghttp2 nghttp3 openssl libssh2' + arch: 'x64' + plat: 'uwp' + type: 'Debug' + tflags: 'skipall' + config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=OFF -DCURL_USE_SCHANNEL=OFF -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DUSE_NGHTTP2=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_LIBSSH2=ON -DCURL_USE_OPENSSL=ON -DUSE_OPENSSL_QUIC=ON' - name: 'no ssl' - install: 'zstd zlib' + install: 'brotli zlib zstd libpsl' arch: 'x64' plat: 'windows' type: 'Debug' tflags: '~1516 ~2301 ~2302 ~2303 ~2307' - config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=OFF -DCURL_USE_SCHANNEL=OFF -DCURL_ZSTD=ON -DHTTP_ONLY=ON' + config: '-DENABLE_DEBUG=ON -DENABLE_UNICODE=OFF -DCURL_USE_SCHANNEL=OFF -DCURL_BROTLI=ON -DCURL_ZSTD=ON -DCURL_USE_LIBPSL=ON -DHTTP_ONLY=ON' fail-fast: false steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 @@ -456,9 +463,9 @@ jobs: - name: 'restore cache dependencies' uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 with: - path: 'cache/${{ matrix.name }}' - key: ${{ matrix.plat }}-${{ matrix.name }} - restore-keys: ${{ matrix.plat }}-${{ matrix.name }} + path: 'cache/${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}' + key: ${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }} + restore-keys: ${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }} - name: 'vcpkg init' timeout-minutes: 5 @@ -469,11 +476,11 @@ jobs: vcpkg/bootstrap-vcpkg.sh -disableMetrics - name: 'vcpkg build' - timeout-minutes: 10 + timeout-minutes: 25 shell: bash run: | export VCPKG_ROOT="$PWD/vcpkg" - export CURRENT_BINARY_CACHE='cache/${{ matrix.name }}' + export CURRENT_BINARY_CACHE='cache/${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}' mkdir -p "$CURRENT_BINARY_CACHE" export VCPKG_BINARY_SOURCES="clear;files,$GITHUB_WORKSPACE/$CURRENT_BINARY_CACHE,readwrite;" vcpkg/vcpkg x-set-installed ${{ matrix.install }} --triplet=${{ matrix.arch }}-${{ matrix.plat }} @@ -482,22 +489,15 @@ jobs: id: cache-save uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 with: - path: 'cache/${{ matrix.name }}' - key: ${{ matrix.plat }}-${{ matrix.name }}-${{ hashFiles('vcpkg/installed/vcpkg/info/*', 'vcpkg/installed/vcpkg/updates/*') }} + path: 'cache/${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}' + key: ${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}-${{ hashFiles('vcpkg/installed/vcpkg/info/*', 'vcpkg/installed/vcpkg/updates/*') }} - name: 'cmake configure' timeout-minutes: 5 shell: bash run: | - if [ '${{ matrix.plat }}' = 'uwp' ]; then - system='WindowsStore' - options='-DCMAKE_SYSTEM_VERSION=10.0' - else - system='Windows' - fi export VCPKG_ROOT="$PWD/vcpkg" - cmake -B bld ${options} \ - "-DCMAKE_SYSTEM_NAME=${system}" \ + cmake -B bld \ "-DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \ "-DVCPKG_INSTALLED_DIR=$VCPKG_ROOT/installed" \ '-DVCPKG_TARGET_TRIPLET=${{ matrix.arch }}-${{ matrix.plat }}' \ @@ -539,12 +539,14 @@ jobs: shell: bash run: | cmake --build bld --config '${{ matrix.type }}' --parallel 5 - export VCPKG_ROOT="$PWD/vcpkg" - export VCPKG_TRIPLET_DIR="$VCPKG_ROOT/installed/${{ matrix.arch }}-${{ matrix.plat }}" - export debug_lib="$VCPKG_TRIPLET_DIR/debug/bin" - export release_lib="$VCPKG_TRIPLET_DIR/bin" - export PATH="$PWD/bld/lib/:$release_lib:$debug_lib:$PATH" - bld/src/curl.exe --disable --version + if [ '${{ matrix.plat }}' != 'uwp' ]; then + export VCPKG_ROOT="$PWD/vcpkg" + export VCPKG_TRIPLET_DIR="$VCPKG_ROOT/installed/${{ matrix.arch }}-${{ matrix.plat }}" + export debug_lib="$VCPKG_TRIPLET_DIR/debug/bin" + export release_lib="$VCPKG_TRIPLET_DIR/bin" + export PATH="$PWD/bld/lib/:$release_lib:$debug_lib:$PATH" + bld/src/curl.exe --disable --version + fi - name: 'cmake build tests' if: ${{ matrix.tflags != 'skipall' }}