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
This commit is contained in:
parent
d70ec5c650
commit
cb22cfca69
48
.github/workflows/windows.yml
vendored
48
.github/workflows/windows.yml
vendored
@ -421,7 +421,7 @@ jobs:
|
|||||||
msvc:
|
msvc:
|
||||||
name: 'msvc (${{ matrix.arch }}, ${{ matrix.plat }}, ${{ matrix.name }})'
|
name: 'msvc (${{ matrix.arch }}, ${{ matrix.plat }}, ${{ matrix.name }})'
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
timeout-minutes: 30
|
timeout-minutes: 55
|
||||||
env:
|
env:
|
||||||
VCPKG_DISABLE_METRICS: '1'
|
VCPKG_DISABLE_METRICS: '1'
|
||||||
strategy:
|
strategy:
|
||||||
@ -429,26 +429,33 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
# name should be unique and without special chars. It creates a folder with that name for the cache.
|
# name should be unique and without special chars. It creates a folder with that name for the cache.
|
||||||
- name: 'schannel'
|
- name: 'schannel'
|
||||||
install: 'zstd zlib nghttp2 libssh2[core,zlib]'
|
install: 'brotli zlib zstd libpsl nghttp2 libssh2[core,zlib] pkgconf gsasl'
|
||||||
arch: 'x64'
|
arch: 'x64'
|
||||||
plat: 'windows'
|
plat: 'windows'
|
||||||
type: 'Debug'
|
type: 'Debug'
|
||||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
tflags: '~1516 ~2301 ~2302 ~2303 ~2307 ~165 ~1448 ~2046 ~2047'
|
||||||
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'
|
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'
|
- name: 'openssl'
|
||||||
install: 'zstd zlib nghttp2 nghttp3 openssl libssh2'
|
install: 'brotli zlib zstd libpsl nghttp2 nghttp3 openssl libssh2 pkgconf gsasl'
|
||||||
arch: 'x64'
|
arch: 'x64'
|
||||||
plat: 'windows'
|
plat: 'windows'
|
||||||
type: 'Debug'
|
type: 'Debug'
|
||||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
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'
|
- name: 'no ssl'
|
||||||
install: 'zstd zlib'
|
install: 'brotli zlib zstd libpsl'
|
||||||
arch: 'x64'
|
arch: 'x64'
|
||||||
plat: 'windows'
|
plat: 'windows'
|
||||||
type: 'Debug'
|
type: 'Debug'
|
||||||
tflags: '~1516 ~2301 ~2302 ~2303 ~2307'
|
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
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
||||||
@ -456,9 +463,9 @@ jobs:
|
|||||||
- name: 'restore cache dependencies'
|
- name: 'restore cache dependencies'
|
||||||
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
uses: actions/cache/restore@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
||||||
with:
|
with:
|
||||||
path: 'cache/${{ matrix.name }}'
|
path: 'cache/${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}'
|
||||||
key: ${{ matrix.plat }}-${{ matrix.name }}
|
key: ${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}
|
||||||
restore-keys: ${{ matrix.plat }}-${{ matrix.name }}
|
restore-keys: ${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}
|
||||||
|
|
||||||
- name: 'vcpkg init'
|
- name: 'vcpkg init'
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
@ -469,11 +476,11 @@ jobs:
|
|||||||
vcpkg/bootstrap-vcpkg.sh -disableMetrics
|
vcpkg/bootstrap-vcpkg.sh -disableMetrics
|
||||||
|
|
||||||
- name: 'vcpkg build'
|
- name: 'vcpkg build'
|
||||||
timeout-minutes: 10
|
timeout-minutes: 25
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
export VCPKG_ROOT="$PWD/vcpkg"
|
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"
|
mkdir -p "$CURRENT_BINARY_CACHE"
|
||||||
export VCPKG_BINARY_SOURCES="clear;files,$GITHUB_WORKSPACE/$CURRENT_BINARY_CACHE,readwrite;"
|
export VCPKG_BINARY_SOURCES="clear;files,$GITHUB_WORKSPACE/$CURRENT_BINARY_CACHE,readwrite;"
|
||||||
vcpkg/vcpkg x-set-installed ${{ matrix.install }} --triplet=${{ matrix.arch }}-${{ matrix.plat }}
|
vcpkg/vcpkg x-set-installed ${{ matrix.install }} --triplet=${{ matrix.arch }}-${{ matrix.plat }}
|
||||||
@ -482,22 +489,15 @@ jobs:
|
|||||||
id: cache-save
|
id: cache-save
|
||||||
uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
uses: actions/cache/save@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
|
||||||
with:
|
with:
|
||||||
path: 'cache/${{ matrix.name }}'
|
path: 'cache/${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}'
|
||||||
key: ${{ matrix.plat }}-${{ matrix.name }}-${{ hashFiles('vcpkg/installed/vcpkg/info/*', 'vcpkg/installed/vcpkg/updates/*') }}
|
key: ${{ matrix.arch }}-${{ matrix.plat }}-${{ matrix.name }}-${{ hashFiles('vcpkg/installed/vcpkg/info/*', 'vcpkg/installed/vcpkg/updates/*') }}
|
||||||
|
|
||||||
- name: 'cmake configure'
|
- name: 'cmake configure'
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if [ '${{ matrix.plat }}' = 'uwp' ]; then
|
|
||||||
system='WindowsStore'
|
|
||||||
options='-DCMAKE_SYSTEM_VERSION=10.0'
|
|
||||||
else
|
|
||||||
system='Windows'
|
|
||||||
fi
|
|
||||||
export VCPKG_ROOT="$PWD/vcpkg"
|
export VCPKG_ROOT="$PWD/vcpkg"
|
||||||
cmake -B bld ${options} \
|
cmake -B bld \
|
||||||
"-DCMAKE_SYSTEM_NAME=${system}" \
|
|
||||||
"-DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
|
"-DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
|
||||||
"-DVCPKG_INSTALLED_DIR=$VCPKG_ROOT/installed" \
|
"-DVCPKG_INSTALLED_DIR=$VCPKG_ROOT/installed" \
|
||||||
'-DVCPKG_TARGET_TRIPLET=${{ matrix.arch }}-${{ matrix.plat }}' \
|
'-DVCPKG_TARGET_TRIPLET=${{ matrix.arch }}-${{ matrix.plat }}' \
|
||||||
@ -539,12 +539,14 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cmake --build bld --config '${{ matrix.type }}' --parallel 5
|
cmake --build bld --config '${{ matrix.type }}' --parallel 5
|
||||||
|
if [ '${{ matrix.plat }}' != 'uwp' ]; then
|
||||||
export VCPKG_ROOT="$PWD/vcpkg"
|
export VCPKG_ROOT="$PWD/vcpkg"
|
||||||
export VCPKG_TRIPLET_DIR="$VCPKG_ROOT/installed/${{ matrix.arch }}-${{ matrix.plat }}"
|
export VCPKG_TRIPLET_DIR="$VCPKG_ROOT/installed/${{ matrix.arch }}-${{ matrix.plat }}"
|
||||||
export debug_lib="$VCPKG_TRIPLET_DIR/debug/bin"
|
export debug_lib="$VCPKG_TRIPLET_DIR/debug/bin"
|
||||||
export release_lib="$VCPKG_TRIPLET_DIR/bin"
|
export release_lib="$VCPKG_TRIPLET_DIR/bin"
|
||||||
export PATH="$PWD/bld/lib/:$release_lib:$debug_lib:$PATH"
|
export PATH="$PWD/bld/lib/:$release_lib:$debug_lib:$PATH"
|
||||||
bld/src/curl.exe --disable --version
|
bld/src/curl.exe --disable --version
|
||||||
|
fi
|
||||||
|
|
||||||
- name: 'cmake build tests'
|
- name: 'cmake build tests'
|
||||||
if: ${{ matrix.tflags != 'skipall' }}
|
if: ${{ matrix.tflags != 'skipall' }}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user