time cmake -B bld -G Ninja \
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
-DCURL_WERROR=ON \
- -DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
+ -DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug \
-DCURL_USE_OPENSSL=ON \
-DCURL_USE_GSSAPI=ON \
|| { cat bld/CMakeFiles/CMake*.yaml; false; }
echo '::group::curl_config.h (raw)'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
echo '::group::curl_config.h'; grep -F '#define' bld/lib/curl_config.h | sort || true; echo '::endgroup::'
- time cmake --build bld --config Debug
+ time cmake --build bld
bld/src/curl --disable --version
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
- time cmake --build bld --config Debug --target testdeps
+ time cmake --build bld --target testdeps
export TFLAGS='-j4'
- time cmake --build bld --config Debug --target test-ci
+ time cmake --build bld --target test-ci
fi
echo '::group::build examples'
- time cmake --build bld --config Debug --target curl-examples
+ time cmake --build bld --target curl-examples
echo '::endgroup::'
openbsd:
time cmake -B bld -G Ninja \
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
-DCURL_WERROR=ON \
- -DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
+ -DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug \
-DCURL_USE_OPENSSL=ON \
|| { cat bld/CMakeFiles/CMake*.yaml; false; }
echo '::group::curl_config.h (raw)'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
echo '::group::curl_config.h'; grep -F '#define' bld/lib/curl_config.h | sort || true; echo '::endgroup::'
- time cmake --build bld --config Debug
+ time cmake --build bld
bld/src/curl --disable --version
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
- time cmake --build bld --config Debug --target testdeps
+ time cmake --build bld --target testdeps
export TFLAGS='-j8 ~3017 ~TFTP ~FTP' # FIXME: TFTP requests executed twice? Related: `curl: (69) TFTP: Access Violation`?
- time cmake --build bld --config Debug --target test-ci
+ time cmake --build bld --target test-ci
fi
echo '::group::build examples'
- time cmake --build bld --config Debug --target curl-examples
+ time cmake --build bld --target curl-examples
echo '::endgroup::'
freebsd:
version: '14.1'
architecture: ${{ matrix.arch }}
run: |
+ export MAKEFLAGS=-j3
# https://ports.freebsd.org/
time sudo pkg install -y autoconf automake libtool \
pkgconf brotli openldap26-client libidn2 libnghttp2 stunnel py311-impacket
|| { tail -n 1000 config.log; false; }
echo '::group::curl_config.h (raw)'; cat lib/curl_config.h || true; echo '::endgroup::'
echo '::group::curl_config.h'; grep -F '#define' lib/curl_config.h | sort || true; echo '::endgroup::'
- time make -j3 install
+ time make install
src/curl --disable --version
desc='${{ matrix.desc }}'
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
- time make -j3 -C tests
+ time make -C tests
if [ "${desc#*!runtests*}" = "${desc}" ]; then
time make test-ci V=1 TFLAGS='-j4'
fi
fi
if [ "${desc#*!examples*}" = "${desc}" ]; then
echo '::group::build examples'
- time make -j3 examples
+ time make examples
echo '::endgroup::'
fi
-DCMAKE_C_COMPILER='${{ matrix.compiler }}' \
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
-DCURL_WERROR=ON \
- -DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG= \
+ -DENABLE_DEBUG=ON -DCMAKE_BUILD_TYPE=Debug \
-DCURL_USE_OPENSSL=ON \
-DCURL_USE_GSSAPI=ON \
${{ matrix.options }} \
|| { cat bld/CMakeFiles/CMake*.yaml; false; }
echo '::group::curl_config.h (raw)'; cat bld/lib/curl_config.h || true; echo '::endgroup::'
echo '::group::curl_config.h'; grep -F '#define' bld/lib/curl_config.h | sort || true; echo '::endgroup::'
- time cmake --build bld --config Debug
+ time cmake --build bld
bld/src/curl --disable --version
desc='${{ matrix.desc }}'
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU
- time cmake --build bld --config Debug --target testdeps
+ time cmake --build bld --target testdeps
if [ "${desc#*!runtests*}" = "${desc}" ]; then
- time cmake --build bld --config Debug --target test-ci
+ time cmake --build bld --target test-ci
fi
fi
if [ "${desc#*!examples*}" = "${desc}" ]; then
echo '::group::build examples'
- time cmake --build bld --config Debug --target curl-examples
+ time cmake --build bld --target curl-examples
echo '::endgroup::'
fi
run: |
set -e
ln -s /usr/bin/gcpp /usr/bin/cpp # Some tests expect `cpp`, which is named `gcpp` in this env.
+ export MAKEFLAGS=-j3
time autoreconf -fi
mkdir bld && cd bld && time ../configure --enable-unity --enable-test-bundles --enable-debug --enable-warnings --enable-werror \
--prefix="${HOME}"/install \
|| { tail -n 1000 config.log; false; }
echo '::group::curl_config.h (raw)'; cat lib/curl_config.h || true; echo '::endgroup::'
echo '::group::curl_config.h'; grep -F '#define' lib/curl_config.h | sort || true; echo '::endgroup::'
- time gmake -j3 install
+ time gmake install
src/curl --disable --version
- time gmake -j3 -C tests
+ time gmake -C tests
time gmake test-ci V=1
echo '::group::build examples'
- time gmake -j3 examples
+ time gmake examples
echo '::endgroup::'
ios:
runs-on: 'macos-latest'
timeout-minutes: 10
env:
+ MAKEFLAGS: -j 4
DEVELOPER_DIR: "/Applications/Xcode${{ matrix.build.xcode && format('_{0}', matrix.build.xcode) || '' }}.app/Contents/Developer"
CC: ${{ matrix.build.compiler || 'clang' }}
- MAKEFLAGS: -j 4
# renovate: datasource=github-tags depName=libressl-portable/portable versioning=semver registryUrl=https://github.com
libressl-version: 4.0.0
strategy:
install_steps: libressl
# FIXME: Could not make OPENSSL_ROOT_DIR work. CMake seems to prepend sysroot to it.
generate: >-
+ -DCMAKE_BUILD_TYPE=Release -DCMAKE_UNITY_BUILD_BATCH_SIZE=50
-DOPENSSL_INCLUDE_DIR="$HOME/libressl/include"
-DOPENSSL_SSL_LIBRARY="$HOME/libressl/lib/libssl.a"
-DOPENSSL_CRYPTO_LIBRARY="$HOME/libressl/lib/libcrypto.a"
- name: 'libressl'
install_steps: libressl
generator: Xcode
+ options: --config Debug
generate: >-
-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=OFF
-DMACOSX_BUNDLE_GUI_IDENTIFIER=se.curl
- name: 'build'
run: |
if [ -n '${{ matrix.build.generate }}' ]; then
- cmake --build bld --verbose
+ cmake --build bld ${{ matrix.build.options }} --parallel 4 --verbose
else
make -C bld V=1
fi
- name: 'build tests'
run: |
if [ -n '${{ matrix.build.generate }}' ]; then
- cmake --build bld --target testdeps --verbose
+ cmake --build bld ${{ matrix.build.options }} --parallel 4 --target testdeps --verbose
else
make -C bld V=1 -C tests
fi
- name: 'build examples'
run: |
if [ -n '${{ matrix.build.generate }}' ]; then
- cmake --build bld --target curl-examples --verbose
+ cmake --build bld ${{ matrix.build.options }} --parallel 4 --target curl-examples --verbose
else
make -C bld examples V=1
fi
runs-on: 'ubuntu-latest'
timeout-minutes: 25
env:
+ MAKEFLAGS: -j 5
VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite'
VCPKG_DISABLE_METRICS: '1'
- MAKEFLAGS: -j 5
strategy:
matrix:
include:
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --verbose
else
- make -j5 -C bld V=1
+ make -C bld V=1
fi
- name: 'curl info'
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --target testdeps
else
- make -j5 -C bld -C tests
+ make -C bld -C tests
fi
- name: 'build examples'
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --target curl-examples
else
- make -j5 -C bld examples
+ make -C bld examples
fi
amiga:
runs-on: 'ubuntu-latest'
timeout-minutes: 5
env:
+ MAKEFLAGS: -j 5
amissl-version: 5.18
strategy:
matrix:
- name: 'build'
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --parallel 5
+ cmake --build bld
else
- make -j5 -C bld
+ make -C bld
fi
- name: 'curl info'
if: ${{ matrix.build == 'cmake' }} # skip for autotools to save time
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --parallel 5 --target testdeps
+ cmake --build bld --target testdeps
else
- make -j5 -C bld -C tests
+ make -C bld -C tests
fi
- name: 'build examples'
if: ${{ matrix.build == 'cmake' }} # skip for autotools to save time
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --parallel 5 --target curl-examples
+ cmake --build bld --target curl-examples
else
- make -j5 -C bld examples
+ make -C bld examples
fi
msdos:
runs-on: 'ubuntu-latest'
timeout-minutes: 5
env:
+ MAKEFLAGS: -j 5
toolchain-version: '3.4'
strategy:
matrix:
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld
else
- make -j5 -C bld
+ make -C bld
fi
- name: 'curl info'
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --target testdeps
else
- make -j5 -C bld -C tests
+ make -C bld -C tests
fi
- name: 'build examples'
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --target curl-examples
else
- make -j5 -C bld examples
+ make -C bld examples
fi
run:
shell: C:\cygwin\bin\bash.exe '{0}'
env:
+ MAKEFLAGS: -j 5
SHELLOPTS: 'igncr'
strategy:
matrix:
timeout-minutes: 10
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --config '${{ matrix.type }}'
+ cmake --build bld
else
- make -C bld -j5 V=1 install
+ make -C bld V=1 install
fi
- name: 'curl version'
timeout-minutes: 15
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --config '${{ matrix.type }}' --target testdeps
+ cmake --build bld --target testdeps
else
- make -C bld -j5 V=1 -C tests
+ make -C bld V=1 -C tests
fi
- name: 'run tests'
fi
if [ '${{ matrix.build }}' = 'cmake' ]; then
PATH="$PWD/bld/lib:$PATH"
- cmake --build bld --config '${{ matrix.type }}' --target test-ci
+ cmake --build bld --target test-ci
else
- make -C bld -j5 V=1 test-ci
+ make -C bld V=1 test-ci
fi
- name: 'build examples'
timeout-minutes: 5
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --config '${{ matrix.type }}' --target curl-examples
+ cmake --build bld --target curl-examples
else
- make -C bld -j5 V=1 examples
+ make -C bld V=1 examples
fi
msys2: # both msys and mingw-w64
defaults:
run:
shell: msys2 {0}
+ env:
+ MAKEFLAGS: -j 5
strategy:
matrix:
include:
fi
[ '${{ matrix.sys }}' = 'msys' ] && options+=' -D_CURL_PREFILL=ON'
[ '${{ matrix.test }}' = 'uwp' ] && options+=' -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0'
- [ '${{ 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 Ninja ${options} \
-DCMAKE_C_FLAGS="${{ matrix.cflags }} ${CFLAGS_CMAKE} ${CPPFLAGS}" \
timeout-minutes: 10
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --config '${{ matrix.type }}'
+ cmake --build bld
else
- make -C bld -j5 V=1 install
+ make -C bld V=1 install
fi
- name: 'curl version'
timeout-minutes: 10
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --config '${{ matrix.type }}' --target testdeps
+ cmake --build bld --target testdeps
else
- make -C bld -j5 V=1 -C tests
+ make -C bld V=1 -C tests
fi
if [ '${{ matrix.build }}' != 'cmake' ]; then
# avoid libtool's .exe wrappers
PATH="$PATH:/c/Program Files (x86)/stunnel/bin"
if [ '${{ matrix.build }}' = 'cmake' ]; then
PATH="$PWD/bld/lib:$PATH"
- cmake --build bld --config '${{ matrix.type }}' --target test-ci
+ cmake --build bld --target test-ci
else
PATH="$PWD/bld/lib/.libs:$PATH"
- make -C bld -j5 V=1 test-ci
+ make -C bld V=1 test-ci
fi
- name: 'build examples'
timeout-minutes: 5
run: |
if [ '${{ matrix.build }}' = 'cmake' ]; then
- cmake --build bld --config '${{ matrix.type }}' --target curl-examples
+ cmake --build bld --target curl-examples
else
- make -C bld -j5 V=1 examples
+ make -C bld V=1 examples
fi
mingw-w64-standalone-downloads:
defaults:
run:
shell: C:\msys64\usr\bin\bash.exe {0}
+ env:
+ MAKEFLAGS: -j 5
strategy:
matrix:
include:
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
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 \
timeout-minutes: 5
run: |
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
- cmake --build bld --config '${{ matrix.type }}' --parallel 5
+ cmake --build bld
- name: 'curl version'
timeout-minutes: 1
timeout-minutes: 10
run: |
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
- cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target testdeps
+ cmake --build bld --target testdeps
- name: 'install test prereqs'
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
fi
PATH="$PWD/bld/lib:$PATH:/c/Program Files (x86)/stunnel/bin"
- cmake --build bld --config '${{ matrix.type }}' --target test-ci
+ cmake --build bld --target test-ci
- name: 'build examples'
timeout-minutes: 5
run: |
PATH="$(cygpath "${USERPROFILE}")/my-cache/${{ matrix.dir }}/bin:/c/msys64/usr/bin:$PATH"
- cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target curl-examples
+ cmake --build bld --target curl-examples
linux-cross-mingw-w64:
name: "linux-mingw, ${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.compiler }}"
runs-on: ubuntu-latest
timeout-minutes: 15
+ env:
+ MAKEFLAGS: -j 5
+ TRIPLET: 'x86_64-w64-mingw32'
strategy:
fail-fast: false
matrix:
build: [autotools, cmake]
compiler: [gcc]
- env:
- TRIPLET: 'x86_64-w64-mingw32'
steps:
- name: 'install packages'
+ timeout-minutes: 5
run: sudo apt-get -o Dpkg::Use-Pty=0 install mingw-w64 ${{ matrix.build == 'cmake' && 'ninja-build' || '' }}
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld
else
- make -C bld -j5
+ make -C bld
fi
- name: 'curl info'
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --target testdeps
else
- make -C bld -j5 -C tests
+ make -C bld -C tests
fi
- name: 'build examples'
if [ '${{ matrix.build }}' = 'cmake' ]; then
cmake --build bld --target curl-examples
else
- make -C bld -j5 examples
+ make -C bld examples
fi
wince:
runs-on: 'macos-latest'
timeout-minutes: 10
env:
- toolchain-version: '0.59.1'
MAKEFLAGS: -j 4
+ toolchain-version: '0.59.1'
strategy:
matrix:
build: [autotools, cmake]
steps:
- name: 'install packages'
if: ${{ matrix.build == 'autotools' }}
+ timeout-minutes: 5
run: |
echo automake libtool | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done
- name: 'install compiler (mingw32ce)'
if: ${{ steps.cache-compiler.outputs.cache-hit != 'true' }}
+ timeout-minutes: 5
run: |
cd "${HOME}" || exit 1
curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 120 --retry 3 --retry-connrefused --proto-redir =https \