Enable ECH #32
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (C) Viktor Szakats | |
# | |
# SPDX-License-Identifier: curl | |
name: non-native | |
'on': | |
push: | |
branches: | |
- master | |
- '*/ci' | |
paths-ignore: | |
- '**/*.md' | |
- '.circleci/**' | |
- 'appveyor.*' | |
- 'packages/**' | |
- 'plan9/**' | |
- 'projects/**' | |
- 'winbuild/**' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- '**/*.md' | |
- '.circleci/**' | |
- 'appveyor.*' | |
- 'packages/**' | |
- 'plan9/**' | |
- 'projects/**' | |
- 'winbuild/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
permissions: {} | |
jobs: | |
netbsd: | |
name: 'NetBSD (cmake, openssl, clang)' | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
arch: ['x86_64'] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: 'cmake' | |
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0 | |
with: | |
operating_system: 'netbsd' | |
version: '10.0' | |
architecture: ${{ matrix.arch }} | |
run: | | |
# https://pkgsrc.se/ | |
sudo pkgin -y install cmake ninja-build pkg-config perl brotli heimdal openldap-client libssh2 libidn2 libpsl nghttp2 py311-impacket | |
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_WEBSOCKETS=ON \ | |
-DCURL_USE_OPENSSL=ON \ | |
-DCURL_BROTLI=ON -DCURL_USE_GSSAPI=ON \ | |
|| { cat bld/CMakeFiles/CMake*.yaml; false; } | |
cmake --build bld --config Debug --parallel 3 | |
bld/src/curl --disable --version | |
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU | |
cmake --build bld --config Debug --parallel 3 --target testdeps | |
export TFLAGS='-j0' # flakies: ~389 ~392 ~TFTP and more | |
cmake --build bld --config Debug --target test-ci | |
fi | |
echo '::group::build examples' | |
cmake --build bld --config Debug --parallel 3 --target curl-examples | |
echo '::endgroup::' | |
openbsd: | |
name: 'OpenBSD (cmake, libressl, clang)' | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
arch: ['x86_64'] | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: 'cmake' | |
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0 | |
with: | |
operating_system: 'openbsd' | |
version: '7.5' | |
architecture: ${{ matrix.arch }} | |
run: | | |
# https://openbsd.app/ | |
sudo pkg_add cmake ninja perl brotli openldap-client libssh2 libidn2 libpsl nghttp2 python3 py3-impacket | |
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_WEBSOCKETS=ON \ | |
-DCURL_USE_OPENSSL=ON \ | |
-DCURL_BROTLI=ON \ | |
|| { cat bld/CMakeFiles/CMake*.yaml; false; } | |
cmake --build bld --config Debug --parallel 3 | |
bld/src/curl --disable --version | |
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU | |
cmake --build bld --config Debug --parallel 3 --target testdeps | |
export TFLAGS='-j8 ~3017 ~TFTP ~FTP' # FIXME: TFTP requests executed twice? Related: `curl: (69) TFTP: Access Violation`? | |
cmake --build bld --config Debug --target test-ci | |
fi | |
echo '::group::build examples' | |
cmake --build bld --config Debug --parallel 3 --target curl-examples | |
echo '::endgroup::' | |
freebsd: | |
name: 'FreeBSD (${{ matrix.build }}, openssl, ${{ matrix.compiler }}, ${{ matrix.arch }})' | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
strategy: | |
matrix: | |
include: | |
- { build: 'autotools', arch: 'x86_64', compiler: 'clang' } | |
- { build: 'autotools', arch: 'arm64', compiler: 'clang' } | |
- { build: 'cmake' , arch: 'arm64', compiler: 'clang' } | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: 'autotools' | |
if: ${{ matrix.build == 'autotools' }} | |
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0 | |
with: | |
operating_system: 'freebsd' | |
version: '14.1' | |
architecture: ${{ matrix.arch }} | |
run: | | |
# https://ports.freebsd.org/ | |
sudo pkg install -y autoconf automake libtool \ | |
pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel py311-impacket | |
autoreconf -fi | |
export CC='${{ matrix.compiler }}' | |
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-debug --enable-warnings --enable-werror \ | |
--prefix="${HOME}"/install \ | |
--enable-websockets \ | |
--with-openssl \ | |
--with-brotli --enable-ldap --enable-ldaps --with-libidn2 --with-libssh2 --with-nghttp2 --with-gssapi \ | |
--disable-dependency-tracking || { tail -n 1000 config.log; false; } | |
make -j3 install | |
src/curl --disable --version | |
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU | |
make -j3 -C tests | |
make test-ci V=1 TFLAGS='-j8 ~FTP' | |
fi | |
echo '::group::build examples' | |
make -j3 examples | |
echo '::endgroup::' | |
- name: 'cmake' | |
if: ${{ matrix.build == 'cmake' }} | |
uses: cross-platform-actions/action@cdc9ee69ef84a5f2e59c9058335d9c57bcb4ac86 # v0.25.0 | |
with: | |
operating_system: 'freebsd' | |
version: '14.1' | |
architecture: ${{ matrix.arch }} | |
run: | | |
# https://ports.freebsd.org/ | |
sudo pkg install -y cmake ninja perl5 \ | |
pkgconf brotli openldap26-client libidn2 libnghttp2 nghttp2 stunnel py311-impacket | |
cmake -B bld -G Ninja \ | |
'-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_WEBSOCKETS=ON \ | |
-DCURL_USE_OPENSSL=ON \ | |
-DCURL_BROTLI=ON -DCURL_USE_GSSAPI=ON \ | |
|| { cat bld/CMakeFiles/CMake*.yaml; false; } | |
cmake --build bld --config Debug --parallel 3 | |
bld/src/curl --disable --version | |
if [ '${{ matrix.arch }}' = 'x86_64' ]; then # Slow on emulated CPU | |
cmake --build bld --config Debug --parallel 3 --target testdeps | |
export TFLAGS='-j8 ~FTP' | |
cmake --build bld --config Debug --target test-ci | |
fi | |
echo '::group::build examples' | |
cmake --build bld --config Debug --parallel 3 --target curl-examples | |
echo '::endgroup::' | |
omnios: | |
name: 'OmniOS (autotools, openssl, gcc, amd64)' | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: 'autotools' | |
uses: vmactions/omnios-vm@2f97978b477e0a014767f65ecf3656b933541460 # v1 | |
with: | |
usesh: true | |
# https://pkg.omnios.org/r151050/core/en/index.shtml | |
prepare: pkg install build-essential libtool | |
run: | | |
ln -s /usr/bin/gcpp /usr/bin/cpp # Some tests expect `cpp`, which is named `gcpp` in this env. | |
autoreconf -fi | |
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-debug --enable-warnings --enable-werror \ | |
--prefix="${HOME}"/install \ | |
--enable-websockets \ | |
--with-openssl \ | |
--disable-dependency-tracking || { tail -n 1000 config.log; false; } | |
gmake -j3 install | |
src/curl --disable --version | |
gmake -j3 -C tests | |
gmake test-ci V=1 TFLAGS='-j12 ~MQTT ~FTP' | |
echo '::group::build examples' | |
gmake -j3 examples | |
echo '::endgroup::' |