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:
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
- 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
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 }}
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 }}' \
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' }}