mirror of
https://github.com/curl/curl.git
synced 2025-03-31 16:00:35 +08:00
parent
a2e75af3fb
commit
bda2129114
@ -29,221 +29,221 @@
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
- 'master'
|
||||
- '*/ci'
|
||||
- 'master'
|
||||
- '*/ci'
|
||||
paths:
|
||||
exclude:
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/*'
|
||||
- 'plan9/*'
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/*'
|
||||
- 'plan9/*'
|
||||
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- 'master'
|
||||
- 'master'
|
||||
paths:
|
||||
exclude:
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/*'
|
||||
- 'plan9/*'
|
||||
- '.circleci/*'
|
||||
- '.cirrus.yml'
|
||||
- '.github/*'
|
||||
- '.github/workflows/*'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/*'
|
||||
- 'plan9/*'
|
||||
|
||||
variables:
|
||||
MAKEFLAGS: '-j 2'
|
||||
|
||||
stages:
|
||||
|
||||
##########################################
|
||||
### Linux jobs first
|
||||
##########################################
|
||||
##########################################
|
||||
### Linux jobs first
|
||||
##########################################
|
||||
|
||||
- stage: linux
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ubuntu
|
||||
# define defaults to make sure variables are always expanded/replaced
|
||||
- stage: linux
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ubuntu
|
||||
# define defaults to make sure variables are always expanded/replaced
|
||||
variables:
|
||||
install: ''
|
||||
configure: ''
|
||||
tests: '!433'
|
||||
timeoutInMinutes: 60
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
strategy:
|
||||
matrix:
|
||||
default:
|
||||
name: default
|
||||
install:
|
||||
configure: --enable-debug --with-openssl
|
||||
disable_ipv6:
|
||||
name: w/o IPv6
|
||||
configure: --disable-ipv6 --with-openssl
|
||||
disable_http_smtp_imap:
|
||||
name: w/o HTTP/SMTP/IMAP
|
||||
configure: --disable-http --disable-smtp --disable-imap --without-ssl
|
||||
disable_thredres:
|
||||
name: sync resolver
|
||||
configure: --disable-threaded-resolver --with-openssl
|
||||
https_only:
|
||||
name: HTTPS only
|
||||
configure: --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --with-openssl
|
||||
torture:
|
||||
name: torture
|
||||
install: libnghttp2-dev
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl
|
||||
tests: -n -t --shallow=25 !FTP
|
||||
steps:
|
||||
- script: sudo apt-get update && sudo apt-get install -y stunnel4 python3-impacket libzstd-dev libbrotli-dev $(install)
|
||||
displayName: 'apt install'
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: autoreconf -fi && ./configure --enable-warnings --enable-werror $(configure)
|
||||
displayName: 'configure $(name)'
|
||||
|
||||
- script: make V=1 && make V=1 examples && cd tests && make V=1
|
||||
displayName: 'compile'
|
||||
|
||||
- script: make V=1 test-ci
|
||||
displayName: 'test'
|
||||
env:
|
||||
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
|
||||
TFLAGS: "-ac /usr/bin/curl -r $(tests)"
|
||||
|
||||
- stage: scanbuild
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ubuntu
|
||||
timeoutInMinutes: 30
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
steps:
|
||||
- script: sudo apt-get update && sudo apt-get install -y clang-tools clang libssl-dev libssh2-1-dev libpsl-dev libbrotli-dev libzstd-dev
|
||||
displayName: 'apt install'
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: autoreconf -fi
|
||||
displayName: 'autoreconf'
|
||||
|
||||
- script: scan-build ./configure --enable-debug --enable-werror --with-openssl --with-libssh2
|
||||
displayName: 'configure'
|
||||
env:
|
||||
CC: "clang"
|
||||
CCX: "clang++"
|
||||
|
||||
- script: scan-build --status-bugs make
|
||||
displayName: 'make'
|
||||
|
||||
- script: scan-build --status-bugs make examples
|
||||
displayName: 'make examples'
|
||||
|
||||
##########################################
|
||||
### Windows jobs below
|
||||
##########################################
|
||||
|
||||
- stage: windows
|
||||
dependsOn: []
|
||||
variables:
|
||||
install: ''
|
||||
configure: ''
|
||||
tests: '!433'
|
||||
timeoutInMinutes: 60
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
strategy:
|
||||
matrix:
|
||||
default:
|
||||
name: default
|
||||
install:
|
||||
configure: --enable-debug --with-openssl
|
||||
disable_ipv6:
|
||||
name: w/o IPv6
|
||||
configure: --disable-ipv6 --with-openssl
|
||||
disable_http_smtp_imap:
|
||||
name: w/o HTTP/SMTP/IMAP
|
||||
configure: --disable-http --disable-smtp --disable-imap --without-ssl
|
||||
disable_thredres:
|
||||
name: sync resolver
|
||||
configure: --disable-threaded-resolver --with-openssl
|
||||
https_only:
|
||||
name: HTTPS only
|
||||
configure: --disable-dict --disable-file --disable-ftp --disable-gopher --disable-imap --disable-ldap --disable-pop3 --disable-rtmp --disable-rtsp --disable-scp --disable-sftp --disable-smb --disable-smtp --disable-telnet --disable-tftp --with-openssl
|
||||
torture:
|
||||
name: torture
|
||||
install: libnghttp2-dev
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl
|
||||
tests: -n -t --shallow=25 !FTP
|
||||
steps:
|
||||
- script: sudo apt-get update && sudo apt-get install -y stunnel4 python3-impacket libzstd-dev libbrotli-dev $(install)
|
||||
displayName: 'apt install'
|
||||
retryCountOnTaskFailure: 3
|
||||
agent.preferPowerShellOnContainers: true
|
||||
jobs:
|
||||
- job: msys2
|
||||
# define defaults to make sure variables are always expanded/replaced
|
||||
variables:
|
||||
container_img: ''
|
||||
container_cmd: ''
|
||||
configure: ''
|
||||
tests: ''
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
strategy:
|
||||
matrix:
|
||||
mingw32_openssl:
|
||||
name: 32-bit OpenSSL/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --with-libssh2 --with-openssl
|
||||
tests: "~571"
|
||||
mingw64_openssl:
|
||||
name: 64-bit OpenSSL/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh2 --with-openssl
|
||||
tests: "~571"
|
||||
mingw64_libssh:
|
||||
name: 64-bit OpenSSL/libssh
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh-devel mingw-w64-x86_64-libssh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh --with-openssl
|
||||
tests: "~571 ~614"
|
||||
mingw32:
|
||||
name: 32-bit w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --without-zlib --without-ssl
|
||||
tests: "!203 !1143"
|
||||
mingw64:
|
||||
name: 64-bit w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --without-zlib --without-ssl
|
||||
tests: "!203 !1143"
|
||||
mingw32_schannel:
|
||||
name: 32-bit Schannel/SSPI/WinIDN/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2
|
||||
tests: "~571"
|
||||
mingw64_schannel:
|
||||
name: 64-bit Schannel/SSPI/WinIDN/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2
|
||||
tests: "~571"
|
||||
mingw32_schannel_nozlib:
|
||||
name: 32-bit Schannel/SSPI/WinIDN w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib
|
||||
tests: "!203 !1143"
|
||||
mingw64_schannel_nozlib:
|
||||
name: 64-bit Schannel/SSPI/WinIDN w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib
|
||||
tests: "!203 !1143"
|
||||
container:
|
||||
image: $(container_img)
|
||||
env:
|
||||
MSYS2_PATH_TYPE: inherit
|
||||
steps:
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && $(prepare)"
|
||||
displayName: 'prepare'
|
||||
condition: variables.prepare
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: autoreconf -fi && ./configure --enable-warnings --enable-werror $(configure)
|
||||
displayName: 'configure $(name)'
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && autoreconf -fi && ./configure $(configure)"
|
||||
displayName: 'configure $(name)'
|
||||
|
||||
- script: make V=1 && make V=1 examples && cd tests && make V=1
|
||||
displayName: 'compile'
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 && make V=1 examples && cd tests && make V=1"
|
||||
displayName: 'compile'
|
||||
|
||||
- script: make V=1 test-ci
|
||||
displayName: 'test'
|
||||
env:
|
||||
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
|
||||
TFLAGS: "-ac /usr/bin/curl -r $(tests)"
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 install && PATH=/usr/bin:/bin find . -type f -path '*/.libs/*.exe' -print -execdir mv -t .. {} \;"
|
||||
displayName: 'install'
|
||||
|
||||
- stage: scanbuild
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: ubuntu
|
||||
timeoutInMinutes: 30
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
steps:
|
||||
- script: sudo apt-get update && sudo apt-get install -y clang-tools clang libssl-dev libssh2-1-dev libpsl-dev libbrotli-dev libzstd-dev
|
||||
displayName: 'apt install'
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: autoreconf -fi
|
||||
displayName: 'autoreconf'
|
||||
|
||||
- script: scan-build ./configure --enable-debug --enable-werror --with-openssl --with-libssh2
|
||||
displayName: 'configure'
|
||||
env:
|
||||
CC: "clang"
|
||||
CCX: "clang++"
|
||||
|
||||
- script: scan-build --status-bugs make
|
||||
displayName: 'make'
|
||||
|
||||
- script: scan-build --status-bugs make examples
|
||||
displayName: 'make examples'
|
||||
|
||||
##########################################
|
||||
### Windows jobs below
|
||||
##########################################
|
||||
|
||||
- stage: windows
|
||||
dependsOn: []
|
||||
variables:
|
||||
agent.preferPowerShellOnContainers: true
|
||||
jobs:
|
||||
- job: msys2
|
||||
# define defaults to make sure variables are always expanded/replaced
|
||||
variables:
|
||||
container_img: ''
|
||||
container_cmd: ''
|
||||
configure: ''
|
||||
tests: ''
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
strategy:
|
||||
matrix:
|
||||
mingw32_openssl:
|
||||
name: 32-bit OpenSSL/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --with-libssh2 --with-openssl
|
||||
tests: "~571"
|
||||
mingw64_openssl:
|
||||
name: 64-bit OpenSSL/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh2 --with-openssl
|
||||
tests: "~571"
|
||||
mingw64_libssh:
|
||||
name: 64-bit OpenSSL/libssh
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh-devel mingw-w64-x86_64-libssh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --with-libssh --with-openssl
|
||||
tests: "~571 ~614"
|
||||
mingw32:
|
||||
name: 32-bit w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --without-zlib --without-ssl
|
||||
tests: "!203 !1143"
|
||||
mingw64:
|
||||
name: 64-bit w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --without-zlib --without-ssl
|
||||
tests: "!203 !1143"
|
||||
mingw32_schannel:
|
||||
name: 32-bit Schannel/SSPI/WinIDN/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-i686-libssh2
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2
|
||||
tests: "~571"
|
||||
mingw64_schannel:
|
||||
name: 64-bit Schannel/SSPI/WinIDN/libssh2
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
prepare: pacman -S --needed --noconfirm --noprogressbar libssh2-devel mingw-w64-x86_64-libssh2
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --with-libssh2
|
||||
tests: "~571"
|
||||
mingw32_schannel_nozlib:
|
||||
name: 32-bit Schannel/SSPI/WinIDN w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw32:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=i686-w64-mingw32 --build=i686-w64-mingw32 --prefix=/mingw32 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib
|
||||
tests: "!203 !1143"
|
||||
mingw64_schannel_nozlib:
|
||||
name: 64-bit Schannel/SSPI/WinIDN w/o zlib
|
||||
container_img: ghcr.io/mback2k/curl-docker-winbuildenv/msys2-mingw64:ltsc2019
|
||||
container_cmd: C:\msys64\usr\bin\sh
|
||||
configure: --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --prefix=/mingw64 --enable-debug --enable-werror --enable-sspi --with-schannel --with-winidn --without-zlib
|
||||
tests: "!203 !1143"
|
||||
container:
|
||||
image: $(container_img)
|
||||
env:
|
||||
MSYS2_PATH_TYPE: inherit
|
||||
steps:
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && $(prepare)"
|
||||
displayName: 'prepare'
|
||||
condition: variables.prepare
|
||||
retryCountOnTaskFailure: 3
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && autoreconf -fi && ./configure $(configure)"
|
||||
displayName: 'configure $(name)'
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 && make V=1 examples && cd tests && make V=1"
|
||||
displayName: 'compile'
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 install && PATH=/usr/bin:/bin find . -type f -path '*/.libs/*.exe' -print -execdir mv -t .. {} \;"
|
||||
displayName: 'install'
|
||||
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 test-ci"
|
||||
displayName: 'test'
|
||||
env:
|
||||
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
|
||||
TFLAGS: "-ac /usr/bin/curl.exe !IDN !SCP ~612 $(tests)"
|
||||
- script: $(container_cmd) -l -c "cd $(echo '%cd%') && make V=1 test-ci"
|
||||
displayName: 'test'
|
||||
env:
|
||||
AZURE_ACCESS_TOKEN: "$(System.AccessToken)"
|
||||
TFLAGS: "-ac /usr/bin/curl.exe !IDN !SCP ~612 $(tests)"
|
||||
|
@ -527,9 +527,9 @@ workflows:
|
||||
|
||||
# There are problem linking with LibreSSL on the CI boxes that prevent this
|
||||
# from working.
|
||||
#macos-x86-http-libressl-http2:
|
||||
# jobs:
|
||||
# - macos-x86-http-libressl-http2
|
||||
# macos-x86-http-libressl-http2:
|
||||
# jobs:
|
||||
# - macos-x86-http-libressl-http2
|
||||
|
||||
macos-x86-http-torture:
|
||||
jobs:
|
||||
|
14
.cirrus.yml
14
.cirrus.yml
@ -59,13 +59,13 @@ freebsd_task:
|
||||
configure_script:
|
||||
- autoreconf -fi
|
||||
# Building with the address sanitizer is causing unexplainable test issues due to timeouts
|
||||
#- case `uname -r` in
|
||||
# 12.2*)
|
||||
# export CC=clang;
|
||||
# export CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export CXXFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" ;;
|
||||
# esac
|
||||
# - case `uname -r` in
|
||||
# 12.2*)
|
||||
# export CC=clang;
|
||||
# export CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export CXXFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g";
|
||||
# export LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer" ;;
|
||||
# esac
|
||||
- ./configure --prefix="${HOME}"/install --enable-debug --with-openssl --with-libssh2 --with-brotli --with-gssapi --with-libidn2 --enable-manual --enable-ldap --enable-ldaps --with-librtmp --with-libpsl --with-nghttp2 || { tail -300 config.log; false; }
|
||||
compile_script:
|
||||
- make V=1 && make V=1 examples && cd tests && make V=1
|
||||
|
52
.github/scripts/spellcheck.yaml
vendored
52
.github/scripts/spellcheck.yaml
vendored
@ -4,29 +4,29 @@
|
||||
#
|
||||
# Docs: https://github.com/UnicornGlobal/spellcheck-github-actions
|
||||
matrix:
|
||||
- name: Markdown
|
||||
expect_match: false
|
||||
apsell:
|
||||
mode: en
|
||||
dictionary:
|
||||
wordlists:
|
||||
- wordlist.txt
|
||||
output: wordlist.dic
|
||||
encoding: utf-8
|
||||
pipeline:
|
||||
- pyspelling.filters.markdown:
|
||||
markdown_extensions:
|
||||
- markdown.extensions.extra:
|
||||
- pyspelling.filters.html:
|
||||
comments: true
|
||||
attributes:
|
||||
- title
|
||||
- alt
|
||||
ignores:
|
||||
- ':matches(code, pre)'
|
||||
- 'code'
|
||||
- 'pre'
|
||||
- 'strong'
|
||||
- 'em'
|
||||
sources:
|
||||
- '**/*.md|!docs/BINDINGS.md'
|
||||
- name: Markdown
|
||||
expect_match: false
|
||||
apsell:
|
||||
mode: en
|
||||
dictionary:
|
||||
wordlists:
|
||||
- wordlist.txt
|
||||
output: wordlist.dic
|
||||
encoding: utf-8
|
||||
pipeline:
|
||||
- pyspelling.filters.markdown:
|
||||
markdown_extensions:
|
||||
- markdown.extensions.extra:
|
||||
- pyspelling.filters.html:
|
||||
comments: true
|
||||
attributes:
|
||||
- title
|
||||
- alt
|
||||
ignores:
|
||||
- ':matches(code, pre)'
|
||||
- 'code'
|
||||
- 'pre'
|
||||
- 'strong'
|
||||
- 'em'
|
||||
sources:
|
||||
- '**/*.md|!docs/BINDINGS.md'
|
||||
|
196
.github/workflows/awslc.yml
vendored
196
.github/workflows/awslc.yml
vendored
@ -7,31 +7,31 @@ name: Linux AWS-LC
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
@ -51,58 +51,58 @@ jobs:
|
||||
timeout-minutes: 30
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update --yes
|
||||
sudo apt-get install --yes libtool autoconf automake pkg-config stunnel4
|
||||
# ensure we don't pick up openssl in this build
|
||||
sudo apt remove --yes libssl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
- run: |
|
||||
sudo apt-get update --yes
|
||||
sudo apt-get install --yes libtool autoconf automake pkg-config stunnel4
|
||||
# ensure we don't pick up openssl in this build
|
||||
sudo apt remove --yes libssl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- name: cache awslc
|
||||
uses: actions/cache@v3
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
- name: cache awslc
|
||||
uses: actions/cache@v3
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
|
||||
- name: build awslc
|
||||
if: steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build . --parallel
|
||||
cmake --install .
|
||||
- name: build awslc
|
||||
if: steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build . --parallel
|
||||
cmake --install .
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: |
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --enable-warnings --enable-werror --with-openssl=$HOME/awslc
|
||||
cd ..
|
||||
name: 'configure out-of-tree'
|
||||
- run: |
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --enable-warnings --enable-werror --with-openssl=$HOME/awslc
|
||||
cd ..
|
||||
name: 'configure out-of-tree'
|
||||
|
||||
- run: make -C build V=1
|
||||
name: 'make'
|
||||
- run: make -C build V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make -C build V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make -C build V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make -C build V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make -C build V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make -C build V=1 test-ci
|
||||
name: 'run tests'
|
||||
- run: make -C build V=1 test-ci
|
||||
name: 'run tests'
|
||||
|
||||
cmake:
|
||||
name: awslc (cmake)
|
||||
@ -110,43 +110,43 @@ jobs:
|
||||
timeout-minutes: 15
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install cmake stunnel4
|
||||
# ensure we don't pick up openssl in this build
|
||||
sudo apt remove --yes libssl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install cmake stunnel4
|
||||
# ensure we don't pick up openssl in this build
|
||||
sudo apt remove --yes libssl-dev
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- name: cache awslc
|
||||
uses: actions/cache@v3
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
- name: cache awslc
|
||||
uses: actions/cache@v3
|
||||
id: cache-awslc
|
||||
env:
|
||||
cache-name: cache-awslc
|
||||
with:
|
||||
path: /home/runner/awslc
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.awslc-version }}
|
||||
|
||||
- name: build awslc
|
||||
if: steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build . --parallel
|
||||
cmake --install .
|
||||
- name: build awslc
|
||||
if: steps.cache-awslc.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 \
|
||||
https://github.com/awslabs/aws-lc/archive/refs/tags/v${{ env.awslc-version }}.tar.gz
|
||||
tar xzf v${{ env.awslc-version }}.tar.gz
|
||||
mkdir aws-lc-${{ env.awslc-version }}-build
|
||||
cd aws-lc-${{ env.awslc-version }}-build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$HOME/awslc ../aws-lc-${{ env.awslc-version }}
|
||||
cmake --build . --parallel
|
||||
cmake --install .
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# CMAKE_COMPILE_WARNING_AS_ERROR is available in cmake 3.24 or later
|
||||
- run: cmake -Bbuild -DOPENSSL_ROOT_DIR=$HOME/awslc -DBUILD_SHARED_LIBS=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON .
|
||||
name: 'cmake generate out-of-tree'
|
||||
# CMAKE_COMPILE_WARNING_AS_ERROR is available in cmake 3.24 or later
|
||||
- run: cmake -Bbuild -DOPENSSL_ROOT_DIR=$HOME/awslc -DBUILD_SHARED_LIBS=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON .
|
||||
name: 'cmake generate out-of-tree'
|
||||
|
||||
- run: cmake --build build --parallel
|
||||
name: 'cmake build'
|
||||
- run: cmake --build build --parallel
|
||||
name: 'cmake build'
|
||||
|
||||
- run: cmake --install build --prefix $HOME/curl --strip
|
||||
name: 'cmake install'
|
||||
- run: cmake --install build --prefix $HOME/curl --strip
|
||||
name: 'cmake install'
|
||||
|
94
.github/workflows/codeql-analysis.yml
vendored
94
.github/workflows/codeql-analysis.yml
vendored
@ -7,35 +7,35 @@ name: CodeQL
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'docs/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
schedule:
|
||||
- cron: '0 0 * * 4'
|
||||
|
||||
@ -50,31 +50,31 @@ jobs:
|
||||
permissions:
|
||||
security-events: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: cpp
|
||||
queries: security-extended
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: cpp
|
||||
queries: security-extended
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
# - run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
18
.github/workflows/codespell.yml
vendored
18
.github/workflows/codespell.yml
vendored
@ -7,18 +7,18 @@ name: Codespell
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- 'lib/**'
|
||||
- 'src/**'
|
||||
- 'include/**'
|
||||
- 'lib/**'
|
||||
- 'src/**'
|
||||
- 'include/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- 'lib/**'
|
||||
- 'src/**'
|
||||
- 'include/**'
|
||||
- master
|
||||
- 'lib/**'
|
||||
- 'src/**'
|
||||
- 'include/**'
|
||||
|
||||
jobs:
|
||||
codespell:
|
||||
|
44
.github/workflows/configure-vs-cmake.yml
vendored
44
.github/workflows/configure-vs-cmake.yml
vendored
@ -6,23 +6,23 @@ name: configure-vs-cmake
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- '*.ac'
|
||||
- '**/*.m4'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'lib/curl_config.h.cmake'
|
||||
- 'scripts/cmp-config.pl'
|
||||
- '*.ac'
|
||||
- '**/*.m4'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'lib/curl_config.h.cmake'
|
||||
- 'scripts/cmp-config.pl'
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- '*.ac'
|
||||
- '**/*.m4'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'lib/curl_config.h.cmake'
|
||||
- 'scripts/cmp-config.pl'
|
||||
- '*.ac'
|
||||
- '**/*.m4'
|
||||
- '**/CMakeLists.txt'
|
||||
- 'lib/curl_config.h.cmake'
|
||||
- 'scripts/cmp-config.pl'
|
||||
|
||||
permissions: {}
|
||||
|
||||
@ -30,16 +30,16 @@ jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: run configure --with-openssl
|
||||
run: |
|
||||
autoreconf -fi
|
||||
./configure --with-openssl
|
||||
- name: run configure --with-openssl
|
||||
run: |
|
||||
autoreconf -fi
|
||||
./configure --with-openssl
|
||||
|
||||
- name: run cmake
|
||||
run: |
|
||||
mkdir build && cd build && cmake ..
|
||||
- name: run cmake
|
||||
run: |
|
||||
mkdir build && cd build && cmake ..
|
||||
|
||||
- name: compare generated curl_config.h files
|
||||
run: ./scripts/cmp-config.pl lib/curl_config.h build/lib/curl_config.h
|
||||
- name: compare generated curl_config.h files
|
||||
run: ./scripts/cmp-config.pl lib/curl_config.h build/lib/curl_config.h
|
||||
|
146
.github/workflows/distcheck.yml
vendored
146
.github/workflows/distcheck.yml
vendored
@ -7,11 +7,11 @@ name: dist
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -22,101 +22,101 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
|
||||
name: 'remove preinstalled curl libcurl4{-doc}'
|
||||
- run: sudo apt-get purge -y curl libcurl4 libcurl4-doc
|
||||
name: 'remove preinstalled curl libcurl4{-doc}'
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --without-ssl
|
||||
name: 'configure'
|
||||
- run: ./configure --without-ssl
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1 && make V=1 clean
|
||||
name: 'make and clean'
|
||||
- run: make V=1 && make V=1 clean
|
||||
name: 'make and clean'
|
||||
|
||||
- run: ./maketgz 99.98.97
|
||||
name: 'maketgz'
|
||||
- run: ./maketgz 99.98.97
|
||||
name: 'maketgz'
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
path: 'curl-99.98.97.tar.gz'
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
path: 'curl-99.98.97.tar.gz'
|
||||
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
./configure --prefix=$HOME/temp --without-ssl
|
||||
make
|
||||
make TFLAGS=1 test
|
||||
make install
|
||||
popd
|
||||
# basic check of the installed files
|
||||
bash scripts/installcheck.sh $HOME/temp
|
||||
rm -rf curl-99.98.97
|
||||
name: 'verify in-tree configure build including install'
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
./configure --prefix=$HOME/temp --without-ssl
|
||||
make
|
||||
make TFLAGS=1 test
|
||||
make install
|
||||
popd
|
||||
# basic check of the installed files
|
||||
bash scripts/installcheck.sh $HOME/temp
|
||||
rm -rf curl-99.98.97
|
||||
name: 'verify in-tree configure build including install'
|
||||
|
||||
verify-out-of-tree-docs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc
|
||||
mkdir build
|
||||
pushd build
|
||||
../curl-99.98.97/configure --without-ssl
|
||||
make
|
||||
make TFLAGS='-p 1 1139' test
|
||||
popd
|
||||
rm -rf build
|
||||
rm -rf curl-99.98.97
|
||||
name: 'verify out-of-tree configure build including docs'
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc
|
||||
mkdir build
|
||||
pushd build
|
||||
../curl-99.98.97/configure --without-ssl
|
||||
make
|
||||
make TFLAGS='-p 1 1139' test
|
||||
popd
|
||||
rm -rf build
|
||||
rm -rf curl-99.98.97
|
||||
name: 'verify out-of-tree configure build including docs'
|
||||
|
||||
verify-out-of-tree-autotools-debug:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
mkdir build
|
||||
pushd build
|
||||
../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg"
|
||||
make -j3
|
||||
make -j3 TFLAGS=1279 test
|
||||
make -j3 install
|
||||
name: 'verify out-of-tree autotools debug build'
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
mkdir build
|
||||
pushd build
|
||||
../configure --without-ssl --enable-debug "--prefix=${PWD}/pkg"
|
||||
make -j3
|
||||
make -j3 TFLAGS=1279 test
|
||||
make -j3 install
|
||||
name: 'verify out-of-tree autotools debug build'
|
||||
|
||||
verify-out-of-tree-cmake:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
needs: maketgz-and-verify-in-tree
|
||||
steps:
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: 'release-tgz'
|
||||
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake ..
|
||||
make
|
||||
name: 'verify out-of-tree cmake build'
|
||||
- run: |
|
||||
echo "::stop-commands::$(uuidgen)"
|
||||
tar xvf curl-99.98.97.tar.gz
|
||||
pushd curl-99.98.97
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake ..
|
||||
make
|
||||
name: 'verify out-of-tree cmake build'
|
||||
|
54
.github/workflows/fuzz.yml
vendored
54
.github/workflows/fuzz.yml
vendored
@ -7,37 +7,37 @@ name: Fuzzer
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'tests/data/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
|
2
.github/workflows/hacktoberfest-accepted.yml
vendored
2
.github/workflows/hacktoberfest-accepted.yml
vendored
@ -8,7 +8,7 @@ on:
|
||||
# this must not ever run on any other branch than master
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
|
||||
concurrency:
|
||||
# this should not run in parallel, so just run one at a time
|
||||
|
6
.github/workflows/label.yml
vendored
6
.github/workflows/label.yml
vendored
@ -21,6 +21,6 @@ jobs:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
22
.github/workflows/linkcheck.yml
vendored
22
.github/workflows/linkcheck.yml
vendored
@ -7,17 +7,17 @@ name: Markdown links
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- '.github/workflows/linkcheck.yml'
|
||||
- '**.md'
|
||||
- '.github/workflows/linkcheck.yml'
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- '.github/workflows/linkcheck.yml'
|
||||
- '**.md'
|
||||
- '.github/workflows/linkcheck.yml'
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -30,7 +30,7 @@ jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@v1
|
||||
with:
|
||||
use-quiet-mode: 'yes'
|
||||
- uses: actions/checkout@v4
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@v1
|
||||
with:
|
||||
use-quiet-mode: 'yes'
|
||||
|
680
.github/workflows/linux.yml
vendored
680
.github/workflows/linux.yml
vendored
@ -7,31 +7,31 @@ name: Linux
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -60,375 +60,375 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: bearssl
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: bearssl pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
|
||||
singleuse: --unit
|
||||
- name: bearssl
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: bearssl pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: bearssl-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: bearssl
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
|
||||
singleuse: --unit
|
||||
- name: bearssl-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: bearssl
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: libressl
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: libressl pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
|
||||
singleuse: --unit
|
||||
- name: libressl
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: libressl pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: libressl-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: libressl
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
|
||||
singleuse: --unit
|
||||
- name: libressl-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: libressl
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: mbedtls
|
||||
install_packages: libnghttp2-dev valgrind
|
||||
install_steps: mbedtls pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
|
||||
singleuse: --unit
|
||||
- name: mbedtls
|
||||
install_packages: libnghttp2-dev valgrind
|
||||
install_steps: mbedtls pytest
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: mbedtls-clang
|
||||
install_packages: libnghttp2-dev clang
|
||||
install_steps: mbedtls
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
|
||||
singleuse: --unit
|
||||
- name: mbedtls-clang
|
||||
install_packages: libnghttp2-dev clang
|
||||
install_steps: mbedtls
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: msh3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: quictls msh3
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/msh3/lib -Wl,-rpath,$HOME/quictls/lib" --with-msh3=$HOME/msh3 --with-openssl=$HOME/quictls --enable-debug
|
||||
singleuse: --unit
|
||||
- name: msh3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: quictls msh3
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/msh3/lib -Wl,-rpath,$HOME/quictls/lib" --with-msh3=$HOME/msh3 --with-openssl=$HOME/quictls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: openssl3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: gcc-11 openssl3 pytest
|
||||
configure: CFLAGS=-std=gnu89 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: openssl3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: gcc-11 openssl3 pytest
|
||||
configure: CFLAGS=-std=gnu89 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
|
||||
- name: openssl3-O3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: gcc-11 openssl3
|
||||
configure: CFLAGS=-O3 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: openssl3-O3
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: gcc-11 openssl3
|
||||
configure: CFLAGS=-O3 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
|
||||
- name: openssl3-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: openssl3
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: openssl3-clang
|
||||
install_packages: zlib1g-dev clang
|
||||
install_steps: openssl3
|
||||
configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib64" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
|
||||
- name: address-sanitizer
|
||||
install_packages: zlib1g-dev libssh2-1-dev clang libssl-dev libubsan1 libasan8 libtsan2
|
||||
install_steps: pytest
|
||||
configure: >
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g"
|
||||
LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer"
|
||||
LIBS="-ldl -lubsan"
|
||||
--with-openssl --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: address-sanitizer
|
||||
install_packages: zlib1g-dev libssh2-1-dev clang libssl-dev libubsan1 libasan8 libtsan2
|
||||
install_steps: pytest
|
||||
configure: >
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=address,undefined,signed-integer-overflow -fno-sanitize-recover=undefined,integer -Wformat -Werror=format-security -Werror=array-bounds -g"
|
||||
LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer"
|
||||
LIBS="-ldl -lubsan"
|
||||
--with-openssl --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
|
||||
- name: memory-sanitizer
|
||||
install_packages: clang
|
||||
install_steps:
|
||||
configure: >
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=memory -Wformat -Werror=format-security -Werror=array-bounds -g"
|
||||
LDFLAGS="-fsanitize=memory"
|
||||
LIBS="-ldl"
|
||||
--without-ssl --without-zlib --without-brotli --without-zstd --without-libpsl --without-nghttp2 --enable-debug --enable-websocketsx
|
||||
singleuse: --unit
|
||||
- name: memory-sanitizer
|
||||
install_packages: clang
|
||||
install_steps:
|
||||
configure: >
|
||||
CC=clang
|
||||
CFLAGS="-fsanitize=memory -Wformat -Werror=format-security -Werror=array-bounds -g"
|
||||
LDFLAGS="-fsanitize=memory"
|
||||
LIBS="-ldl"
|
||||
--without-ssl --without-zlib --without-brotli --without-zstd --without-libpsl --without-nghttp2 --enable-debug --enable-websocketsx
|
||||
singleuse: --unit
|
||||
|
||||
- name: event-based
|
||||
install_packages: libssh-dev valgrind
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl
|
||||
tflags: -n -e '!TLS-SRP'
|
||||
singleuse: --unit
|
||||
- name: event-based
|
||||
install_packages: libssh-dev valgrind
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl
|
||||
tflags: -n -e '!TLS-SRP'
|
||||
singleuse: --unit
|
||||
|
||||
- name: hyper
|
||||
install_steps: rust hyper valgrind
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/hyper/target/debug" --with-openssl --with-hyper=$HOME/hyper --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
- name: hyper
|
||||
install_steps: rust hyper valgrind
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/hyper/target/debug" --with-openssl --with-hyper=$HOME/hyper --enable-debug --enable-websockets
|
||||
singleuse: --unit
|
||||
|
||||
- name: rustls
|
||||
install_steps: rust rustls pytest valgrind
|
||||
configure: --with-rustls=$HOME/rustls --enable-debug
|
||||
singleuse: --unit
|
||||
- name: rustls
|
||||
install_steps: rust rustls pytest valgrind
|
||||
configure: --with-rustls=$HOME/rustls --enable-debug
|
||||
singleuse: --unit
|
||||
|
||||
- name: Intel compiler - without SSL
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: intel
|
||||
configure: CC=icc --enable-debug --without-ssl
|
||||
singleuse: --unit
|
||||
- name: Intel compiler - without SSL
|
||||
install_packages: zlib1g-dev valgrind
|
||||
install_steps: intel
|
||||
configure: CC=icc --enable-debug --without-ssl
|
||||
singleuse: --unit
|
||||
|
||||
- name: Intel compiler - OpenSSL
|
||||
install_packages: zlib1g-dev libssl-dev valgrind
|
||||
install_steps: intel
|
||||
configure: CC=icc --enable-debug --with-openssl
|
||||
singleuse: --unit
|
||||
- name: Intel compiler - OpenSSL
|
||||
install_packages: zlib1g-dev libssl-dev valgrind
|
||||
install_steps: intel
|
||||
configure: CC=icc --enable-debug --with-openssl
|
||||
singleuse: --unit
|
||||
|
||||
- name: Slackware-openssl-with-gssapi-gcc
|
||||
# These are essentially the same flags used to build the curl Slackware package
|
||||
# https://ftpmirror.infania.net/slackware/slackware64-current/source/n/curl/curl.SlackBuild
|
||||
configure: --with-openssl --with-libssh2 --with-gssapi --enable-ares --enable-static=no --without-ca-bundle --with-ca-path=/etc/ssl/certs
|
||||
# Docker Hub image that `container-job` executes in
|
||||
container: 'andy5995/slackware-build-essential:15.0'
|
||||
- name: Slackware-openssl-with-gssapi-gcc
|
||||
# These are essentially the same flags used to build the curl Slackware package
|
||||
# https://ftpmirror.infania.net/slackware/slackware64-current/source/n/curl/curl.SlackBuild
|
||||
configure: --with-openssl --with-libssh2 --with-gssapi --enable-ares --enable-static=no --without-ca-bundle --with-ca-path=/etc/ssl/certs
|
||||
# Docker Hub image that `container-job` executes in
|
||||
container: 'andy5995/slackware-build-essential:15.0'
|
||||
|
||||
- name: Alpine MUSL
|
||||
configure: --enable-debug --enable-websockets --with-ssl --with-libssh2 --with-libidn2 --with-gssapi --enable-ldap --with-libpsl
|
||||
container: 'alpine:3.18'
|
||||
singleuse: --unit
|
||||
- name: Alpine MUSL
|
||||
configure: --enable-debug --enable-websockets --with-ssl --with-libssh2 --with-libidn2 --with-gssapi --enable-ldap --with-libpsl
|
||||
container: 'alpine:3.18'
|
||||
singleuse: --unit
|
||||
|
||||
steps:
|
||||
- if: matrix.build.container == null
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 libpsl-dev libbrotli-dev libzstd-dev ${{ matrix.build.install_packages }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
- if: matrix.build.container == null
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 libpsl-dev libbrotli-dev libzstd-dev ${{ matrix.build.install_packages }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- if: startsWith(matrix.build.container, 'alpine')
|
||||
run: |
|
||||
apk add --no-cache build-base autoconf automake libtool perl openssl-dev libssh2-dev zlib-dev brotli-dev zstd-dev libidn2-dev openldap-dev heimdal-dev libpsl-dev py3-impacket py3-asn1 py3-six py3-pycryptodomex perl-time-hires openssh stunnel sudo git
|
||||
name: 'install dependencies'
|
||||
- if: startsWith(matrix.build.container, 'alpine')
|
||||
run: |
|
||||
apk add --no-cache build-base autoconf automake libtool perl openssl-dev libssh2-dev zlib-dev brotli-dev zstd-dev libidn2-dev openldap-dev heimdal-dev libpsl-dev py3-impacket py3-asn1 py3-six py3-pycryptodomex perl-time-hires openssh stunnel sudo git
|
||||
name: 'install dependencies'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'gcc-11')
|
||||
run: |
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-11
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
|
||||
sudo update-alternatives --set gcc /usr/bin/gcc-11
|
||||
gcc --version
|
||||
name: 'install gcc-11'
|
||||
- if: contains(matrix.build.install_steps, 'gcc-11')
|
||||
run: |
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-11
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
|
||||
sudo update-alternatives --set gcc /usr/bin/gcc-11
|
||||
gcc --version
|
||||
name: 'install gcc-11'
|
||||
|
||||
- name: cache bearssl
|
||||
if: contains(matrix.build.install_steps, 'bearssl')
|
||||
uses: actions/cache@v3
|
||||
id: cache-bearssl
|
||||
env:
|
||||
cache-name: cache-bearssl
|
||||
with:
|
||||
path: /home/runner/bearssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-bearssl-${{ env.bearssl-version }}
|
||||
- name: cache bearssl
|
||||
if: contains(matrix.build.install_steps, 'bearssl')
|
||||
uses: actions/cache@v3
|
||||
id: cache-bearssl
|
||||
env:
|
||||
cache-name: cache-bearssl
|
||||
with:
|
||||
path: /home/runner/bearssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-bearssl-${{ env.bearssl-version }}
|
||||
|
||||
- name: 'build bearssl'
|
||||
if: contains(matrix.build.install_steps, 'bearssl') && steps.cache-bearssl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://bearssl.org/bearssl-${{ env.bearssl-version }}.tar.gz
|
||||
tar -xzf bearssl-${{ env.bearssl-version }}.tar.gz
|
||||
cd bearssl-${{ env.bearssl-version }}
|
||||
make
|
||||
mkdir -p $HOME/bearssl/lib $HOME/bearssl/include
|
||||
cp inc/*.h $HOME/bearssl/include
|
||||
cp build/libbearssl.* $HOME/bearssl/lib
|
||||
- name: 'build bearssl'
|
||||
if: contains(matrix.build.install_steps, 'bearssl') && steps.cache-bearssl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://bearssl.org/bearssl-${{ env.bearssl-version }}.tar.gz
|
||||
tar -xzf bearssl-${{ env.bearssl-version }}.tar.gz
|
||||
cd bearssl-${{ env.bearssl-version }}
|
||||
make
|
||||
mkdir -p $HOME/bearssl/lib $HOME/bearssl/include
|
||||
cp inc/*.h $HOME/bearssl/include
|
||||
cp build/libbearssl.* $HOME/bearssl/lib
|
||||
|
||||
- name: cache libressl
|
||||
if: contains(matrix.build.install_steps, 'libressl')
|
||||
uses: actions/cache@v3
|
||||
id: cache-libressl
|
||||
env:
|
||||
cache-name: cache-libressl
|
||||
with:
|
||||
path: /home/runner/libressl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-libressl-${{ env.libressl-version }}
|
||||
- name: cache libressl
|
||||
if: contains(matrix.build.install_steps, 'libressl')
|
||||
uses: actions/cache@v3
|
||||
id: cache-libressl
|
||||
env:
|
||||
cache-name: cache-libressl
|
||||
with:
|
||||
path: /home/runner/libressl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-libressl-${{ env.libressl-version }}
|
||||
|
||||
- name: 'build libressl'
|
||||
if: contains(matrix.build.install_steps, 'libressl') && steps.cache-libressl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.libressl-version }} https://github.com/libressl-portable/portable.git libressl-git
|
||||
cd libressl-git
|
||||
./autogen.sh
|
||||
./configure --prefix=$HOME/libressl
|
||||
make install
|
||||
- name: 'build libressl'
|
||||
if: contains(matrix.build.install_steps, 'libressl') && steps.cache-libressl.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.libressl-version }} https://github.com/libressl-portable/portable.git libressl-git
|
||||
cd libressl-git
|
||||
./autogen.sh
|
||||
./configure --prefix=$HOME/libressl
|
||||
make install
|
||||
|
||||
- name: cache mbedtls
|
||||
if: contains(matrix.build.install_steps, 'mbedtls')
|
||||
uses: actions/cache@v3
|
||||
id: cache-mbedtls
|
||||
env:
|
||||
cache-name: cache-mbedtls
|
||||
with:
|
||||
path: /home/runner/mbedtls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-mbedtls-${{ env.mbedtls-version }}
|
||||
- name: cache mbedtls
|
||||
if: contains(matrix.build.install_steps, 'mbedtls')
|
||||
uses: actions/cache@v3
|
||||
id: cache-mbedtls
|
||||
env:
|
||||
cache-name: cache-mbedtls
|
||||
with:
|
||||
path: /home/runner/mbedtls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-mbedtls-${{ env.mbedtls-version }}
|
||||
|
||||
- name: 'build mbedtls'
|
||||
if: contains(matrix.build.install_steps, 'mbedtls') && steps.cache-mbedtls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.mbedtls-version }} https://github.com/ARMmbed/mbedtls
|
||||
cd mbedtls
|
||||
make DESTDIR=$HOME/mbedtls install
|
||||
- name: 'build mbedtls'
|
||||
if: contains(matrix.build.install_steps, 'mbedtls') && steps.cache-mbedtls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.mbedtls-version }} https://github.com/ARMmbed/mbedtls
|
||||
cd mbedtls
|
||||
make DESTDIR=$HOME/mbedtls install
|
||||
|
||||
- name: cache openssl3
|
||||
if: contains(matrix.build.install_steps, 'openssl3')
|
||||
uses: actions/cache@v3
|
||||
id: cache-openssl3
|
||||
env:
|
||||
cache-name: cache-openssl3
|
||||
with:
|
||||
path: /home/runner/openssl3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.openssl3-version }}
|
||||
- name: cache openssl3
|
||||
if: contains(matrix.build.install_steps, 'openssl3')
|
||||
uses: actions/cache@v3
|
||||
id: cache-openssl3
|
||||
env:
|
||||
cache-name: cache-openssl3
|
||||
with:
|
||||
path: /home/runner/openssl3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.openssl3-version }}
|
||||
|
||||
- name: 'install openssl3'
|
||||
if: contains(matrix.build.install_steps, 'openssl3') && steps.cache-openssl3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.openssl3-version }} https://github.com/openssl/openssl
|
||||
cd openssl
|
||||
./config enable-tls1_3 --prefix=$HOME/openssl3
|
||||
make -j1 install_sw
|
||||
- name: 'install openssl3'
|
||||
if: contains(matrix.build.install_steps, 'openssl3') && steps.cache-openssl3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.openssl3-version }} https://github.com/openssl/openssl
|
||||
cd openssl
|
||||
./config enable-tls1_3 --prefix=$HOME/openssl3
|
||||
make -j1 install_sw
|
||||
|
||||
- name: cache quictls
|
||||
if: contains(matrix.build.install_steps, 'quictls')
|
||||
uses: actions/cache@v3
|
||||
id: cache-quictls
|
||||
env:
|
||||
cache-name: cache-quictls
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quictls-${{ env.quictls-version }}
|
||||
- name: cache quictls
|
||||
if: contains(matrix.build.install_steps, 'quictls')
|
||||
uses: actions/cache@v3
|
||||
id: cache-quictls
|
||||
env:
|
||||
cache-name: cache-quictls
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quictls-${{ env.quictls-version }}
|
||||
|
||||
- name: 'build quictls'
|
||||
if: contains(matrix.build.install_steps, 'quictls') && steps.cache-quictls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl
|
||||
cd openssl
|
||||
./config enable-tls1_3 --prefix=$HOME/quictls --libdir=$HOME/quictls/lib
|
||||
make -j1 install_sw
|
||||
- name: 'build quictls'
|
||||
if: contains(matrix.build.install_steps, 'quictls') && steps.cache-quictls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl
|
||||
cd openssl
|
||||
./config enable-tls1_3 --prefix=$HOME/quictls --libdir=$HOME/quictls/lib
|
||||
make -j1 install_sw
|
||||
|
||||
- name: cache msh3
|
||||
if: contains(matrix.build.install_steps, 'msh3')
|
||||
uses: actions/cache@v3
|
||||
id: cache-msh3
|
||||
env:
|
||||
cache-name: cache-msh3
|
||||
with:
|
||||
path: /home/runner/msh3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-msh3-${{ env.msh3-version }}
|
||||
- name: cache msh3
|
||||
if: contains(matrix.build.install_steps, 'msh3')
|
||||
uses: actions/cache@v3
|
||||
id: cache-msh3
|
||||
env:
|
||||
cache-name: cache-msh3
|
||||
with:
|
||||
path: /home/runner/msh3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-msh3-${{ env.msh3-version }}
|
||||
|
||||
- name: 'build msh3'
|
||||
if: contains(matrix.build.install_steps, 'msh3') && steps.cache-msh3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet -b ${{ env.msh3-version }} --depth=1 --recursive https://github.com/nibanks/msh3
|
||||
cd msh3 && mkdir build && cd build
|
||||
cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/msh3 ..
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
- name: 'build msh3'
|
||||
if: contains(matrix.build.install_steps, 'msh3') && steps.cache-msh3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet -b ${{ env.msh3-version }} --depth=1 --recursive https://github.com/nibanks/msh3
|
||||
cd msh3 && mkdir build && cd build
|
||||
cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/msh3 ..
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'rust')
|
||||
run: |
|
||||
cd $HOME
|
||||
curl -sSf --compressed https://sh.rustup.rs/ | sh -s -- -y
|
||||
source $HOME/.cargo/env
|
||||
rustup toolchain install nightly
|
||||
name: 'install rust'
|
||||
- if: contains(matrix.build.install_steps, 'rust')
|
||||
run: |
|
||||
cd $HOME
|
||||
curl -sSf --compressed https://sh.rustup.rs/ | sh -s -- -y
|
||||
source $HOME/.cargo/env
|
||||
rustup toolchain install nightly
|
||||
name: 'install rust'
|
||||
|
||||
- name: cache rustls
|
||||
if: contains(matrix.build.install_steps, 'rustls')
|
||||
uses: actions/cache@v3
|
||||
id: cache-rustls
|
||||
env:
|
||||
cache-name: cache-rustls
|
||||
with:
|
||||
path: /home/runner/rustls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-rustls-${{ env.rustls-version }}
|
||||
- name: cache rustls
|
||||
if: contains(matrix.build.install_steps, 'rustls')
|
||||
uses: actions/cache@v3
|
||||
id: cache-rustls
|
||||
env:
|
||||
cache-name: cache-rustls
|
||||
with:
|
||||
path: /home/runner/rustls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-rustls-${{ env.rustls-version }}
|
||||
|
||||
- name: 'build rustls'
|
||||
if: contains(matrix.build.install_steps, 'rustls') && steps.cache-rustls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.rustls-version }} --recursive https://github.com/rustls/rustls-ffi.git
|
||||
cd rustls-ffi
|
||||
make DESTDIR=$HOME/rustls install
|
||||
- name: 'build rustls'
|
||||
if: contains(matrix.build.install_steps, 'rustls') && steps.cache-rustls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.rustls-version }} --recursive https://github.com/rustls/rustls-ffi.git
|
||||
cd rustls-ffi
|
||||
make DESTDIR=$HOME/rustls install
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'hyper')
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 https://github.com/hyperium/hyper.git
|
||||
cd $HOME/hyper
|
||||
RUSTFLAGS="--cfg hyper_unstable_ffi" cargo +nightly rustc --features client,http1,http2,ffi -Z unstable-options --crate-type cdylib
|
||||
echo "LD_LIBRARY_PATH=$HOME/hyper/target/debug:/usr/local/lib" >> $GITHUB_ENV
|
||||
name: 'install hyper'
|
||||
- if: contains(matrix.build.install_steps, 'hyper')
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 https://github.com/hyperium/hyper.git
|
||||
cd $HOME/hyper
|
||||
RUSTFLAGS="--cfg hyper_unstable_ffi" cargo +nightly rustc --features client,http1,http2,ffi -Z unstable-options --crate-type cdylib
|
||||
echo "LD_LIBRARY_PATH=$HOME/hyper/target/debug:/usr/local/lib" >> $GITHUB_ENV
|
||||
name: 'install hyper'
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'intel')
|
||||
run: |
|
||||
cd /tmp
|
||||
curl -sSf --compressed https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add -
|
||||
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
|
||||
sudo apt install --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
printenv >> $GITHUB_ENV
|
||||
name: 'install Intel compilers'
|
||||
- if: contains(matrix.build.install_steps, 'intel')
|
||||
run: |
|
||||
cd /tmp
|
||||
curl -sSf --compressed https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add -
|
||||
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
|
||||
sudo apt install --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
printenv >> $GITHUB_ENV
|
||||
name: 'install Intel compilers'
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
sudo apt-get install apache2 apache2-dev libnghttp2-dev
|
||||
sudo python3 -m pip install -r tests/http/requirements.txt
|
||||
name: 'install pytest and apach2-dev'
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
sudo apt-get install apache2 apache2-dev libnghttp2-dev
|
||||
sudo python3 -m pip install -r tests/http/requirements.txt
|
||||
name: 'install pytest and apach2-dev'
|
||||
|
||||
- name: cache mod_h2
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
uses: actions/cache@v3
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
- name: cache mod_h2
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
uses: actions/cache@v3
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- name: 'build mod_h2'
|
||||
if: contains(matrix.build.install_steps, 'pytest') && steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
- name: 'build mod_h2'
|
||||
if: contains(matrix.build.install_steps, 'pytest') && steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
|
||||
- name: 'install mod_h2'
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
- name: 'install mod_h2'
|
||||
if: contains(matrix.build.install_steps, 'pytest')
|
||||
run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: |
|
||||
git config --global --add safe.directory "*"
|
||||
./scripts/singleuse.pl ${{ matrix.build.singleuse }} lib/.libs/libcurl.a
|
||||
name: single-use function check
|
||||
- run: |
|
||||
git config --global --add safe.directory "*"
|
||||
./scripts/singleuse.pl ${{ matrix.build.singleuse }} lib/.libs/libcurl.a
|
||||
name: single-use function check
|
||||
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
# run for `tests` directory, so pytest does not pick up any other
|
||||
# packages we might have built here
|
||||
run:
|
||||
pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
- if: contains(matrix.build.install_steps, 'pytest')
|
||||
# run for `tests` directory, so pytest does not pick up any other
|
||||
# packages we might have built here
|
||||
run:
|
||||
pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
|
102
.github/workflows/linux32.yml
vendored
102
.github/workflows/linux32.yml
vendored
@ -7,35 +7,35 @@ name: Linux 32-bit
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -55,39 +55,39 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: Linux i686
|
||||
install_packages: gcc-11-i686-linux-gnu libssl-dev:i386 zlib1g-dev:i386 libpsl-dev:i386 libbrotli-dev:i386 libzstd-dev:i386
|
||||
configure: --enable-debug --enable-websockets --with-openssl --host=i686-linux-gnu CC=i686-linux-gnu-gcc-11 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CPPFLAGS=-I/usr/include/i386-linux-gnu LDFLAGS=-L/usr/lib/i386-linux-gnu
|
||||
- name: Linux i686
|
||||
install_packages: gcc-11-i686-linux-gnu libssl-dev:i386 zlib1g-dev:i386 libpsl-dev:i386 libbrotli-dev:i386 libzstd-dev:i386
|
||||
configure: --enable-debug --enable-websockets --with-openssl --host=i686-linux-gnu CC=i686-linux-gnu-gcc-11 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CPPFLAGS=-I/usr/include/i386-linux-gnu LDFLAGS=-L/usr/lib/i386-linux-gnu
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install_packages }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs'
|
||||
- run: |
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y --no-install-suggests --no-install-recommends libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install_packages }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
- run: ./src/curl -V
|
||||
name: 'check curl -V output'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
365
.github/workflows/macos.yml
vendored
365
.github/workflows/macos.yml
vendored
@ -7,31 +7,31 @@ name: macOS
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -52,141 +52,142 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: normal
|
||||
install: nghttp2
|
||||
configure: --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: debug
|
||||
install: nghttp2
|
||||
configure: --enable-debug --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh2
|
||||
install: nghttp2 libssh2
|
||||
configure: --enable-debug --with-libssh2 --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh-c-ares
|
||||
install: openssl nghttp2 libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=/usr/local/opt/openssl --enable-ares --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh
|
||||
install: openssl nghttp2 libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: c-ares
|
||||
install: nghttp2
|
||||
configure: --enable-debug --enable-ares --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: HTTP only
|
||||
install: nghttp2
|
||||
configure: |
|
||||
--enable-debug \
|
||||
--enable-maintainer-mode \
|
||||
--disable-alt-svc \
|
||||
--disable-dict \
|
||||
--disable-file \
|
||||
--disable-ftp \
|
||||
--disable-gopher \
|
||||
--disable-imap \
|
||||
--disable-ldap \
|
||||
--disable-pop3 \
|
||||
--disable-rtmp \
|
||||
--disable-rtsp \
|
||||
--disable-scp \
|
||||
--disable-sftp \
|
||||
--disable-shared \
|
||||
--disable-smb \
|
||||
--disable-smtp \
|
||||
--disable-telnet \
|
||||
--disable-tftp \
|
||||
--disable-unix-sockets \
|
||||
--without-brotli \
|
||||
--without-gssapi \
|
||||
--without-libidn2 \
|
||||
--without-libpsl \
|
||||
--without-librtmp \
|
||||
--without-libssh2 \
|
||||
--without-nghttp2 \
|
||||
--without-ntlm-auth \
|
||||
--without-ssl \
|
||||
--without-zlib \
|
||||
--without-zstd
|
||||
macosx-version-min: 10.15
|
||||
- name: SecureTransport http2
|
||||
install: nghttp2
|
||||
configure: --enable-debug --with-secure-transport --enable-websockets
|
||||
macosx-version-min: 10.8
|
||||
- name: gcc SecureTransport
|
||||
configure: CC=gcc-12 --enable-debug --with-secure-transport --enable-websockets
|
||||
macosx-version-min: 10.8
|
||||
- name: OpenSSL http2
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: LibreSSL http2
|
||||
install: nghttp2 libressl
|
||||
configure: --enable-debug --with-openssl=/usr/local/opt/libressl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: torture
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
tflags: -n -t --shallow=25 !FTP
|
||||
macosx-version-min: 10.9
|
||||
- name: torture-ftp
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
tflags: -n -t --shallow=20 FTP
|
||||
macosx-version-min: 10.9
|
||||
- name: macOS 10.15
|
||||
install: nghttp2 libssh2 openssl
|
||||
configure: --enable-debug --disable-ldap --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.15
|
||||
- name: normal
|
||||
install: nghttp2
|
||||
configure: --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: debug
|
||||
install: nghttp2
|
||||
configure: --enable-debug --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh2
|
||||
install: nghttp2 libssh2
|
||||
configure: --enable-debug --with-libssh2 --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh-c-ares
|
||||
install: openssl nghttp2 libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=/usr/local/opt/openssl --enable-ares --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: libssh
|
||||
install: openssl nghttp2 libssh
|
||||
configure: --enable-debug --with-libssh --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: c-ares
|
||||
install: nghttp2
|
||||
configure: --enable-debug --enable-ares --without-ssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: HTTP only
|
||||
install: nghttp2
|
||||
configure: |
|
||||
--enable-debug \
|
||||
--enable-maintainer-mode \
|
||||
--disable-alt-svc \
|
||||
--disable-dict \
|
||||
--disable-file \
|
||||
--disable-ftp \
|
||||
--disable-gopher \
|
||||
--disable-imap \
|
||||
--disable-ldap \
|
||||
--disable-pop3 \
|
||||
--disable-rtmp \
|
||||
--disable-rtsp \
|
||||
--disable-scp \
|
||||
--disable-sftp \
|
||||
--disable-shared \
|
||||
--disable-smb \
|
||||
--disable-smtp \
|
||||
--disable-telnet \
|
||||
--disable-tftp \
|
||||
--disable-unix-sockets \
|
||||
--without-brotli \
|
||||
--without-gssapi \
|
||||
--without-libidn2 \
|
||||
--without-libpsl \
|
||||
--without-librtmp \
|
||||
--without-libssh2 \
|
||||
--without-nghttp2 \
|
||||
--without-ntlm-auth \
|
||||
--without-ssl \
|
||||
--without-zlib \
|
||||
--without-zstd
|
||||
|
||||
macosx-version-min: 10.15
|
||||
- name: SecureTransport http2
|
||||
install: nghttp2
|
||||
configure: --enable-debug --with-secure-transport --enable-websockets
|
||||
macosx-version-min: 10.8
|
||||
- name: gcc SecureTransport
|
||||
configure: CC=gcc-12 --enable-debug --with-secure-transport --enable-websockets
|
||||
macosx-version-min: 10.8
|
||||
- name: OpenSSL http2
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: LibreSSL http2
|
||||
install: nghttp2 libressl
|
||||
configure: --enable-debug --with-openssl=/usr/local/opt/libressl --enable-websockets
|
||||
macosx-version-min: 10.9
|
||||
- name: torture
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
tflags: -n -t --shallow=25 !FTP
|
||||
macosx-version-min: 10.9
|
||||
- name: torture-ftp
|
||||
install: nghttp2 openssl
|
||||
configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
tflags: -n -t --shallow=20 FTP
|
||||
macosx-version-min: 10.9
|
||||
- name: macOS 10.15
|
||||
install: nghttp2 libssh2 openssl
|
||||
configure: --enable-debug --disable-ldap --with-openssl=/usr/local/opt/openssl --enable-websockets
|
||||
macosx-version-min: 10.15
|
||||
steps:
|
||||
- run: echo libtool autoconf automake pkg-config ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
name: 'brew bundle'
|
||||
- run: echo libtool autoconf automake pkg-config ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
name: 'brew bundle'
|
||||
|
||||
# Run this command with retries because of spurious failures seen
|
||||
# while running the tests, for example
|
||||
# https://github.com/curl/curl/runs/4095721123?check_suite_focus=true
|
||||
- run: "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: 'brew install'
|
||||
# Run this command with retries because of spurious failures seen
|
||||
# while running the tests, for example
|
||||
# https://github.com/curl/curl/runs/4095721123?check_suite_focus=true
|
||||
- run: "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: 'brew install'
|
||||
|
||||
- run: |
|
||||
case "${{ matrix.build.install }}" in
|
||||
*openssl*)
|
||||
;;
|
||||
*)
|
||||
if test -d /usr/local/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi;;
|
||||
esac
|
||||
name: 'brew unlink openssl'
|
||||
- run: |
|
||||
case "${{ matrix.build.install }}" in
|
||||
*openssl*)
|
||||
;;
|
||||
*)
|
||||
if test -d /usr/local/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi;;
|
||||
esac
|
||||
name: 'brew unlink openssl'
|
||||
|
||||
- run: python3 -m pip install impacket
|
||||
name: 'pip3 install'
|
||||
- run: python3 -m pip install impacket
|
||||
name: 'pip3 install'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
env:
|
||||
CFLAGS: "-mmacosx-version-min=${{ matrix.build.macosx-version-min }}"
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
env:
|
||||
CFLAGS: "-mmacosx-version-min=${{ matrix.build.macosx-version-min }}"
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }} ~1452"
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }} ~1452"
|
||||
|
||||
cmake:
|
||||
name: cmake ${{ matrix.compiler.CC }} ${{ matrix.build.name }}
|
||||
@ -196,47 +197,47 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler:
|
||||
- CC: clang
|
||||
CXX: clang++
|
||||
CFLAGS: "-mmacosx-version-min=10.15 -Wno-deprecated-declarations"
|
||||
- CC: gcc-12
|
||||
CXX: g++-12
|
||||
CFLAGS: "-mmacosx-version-min=10.15 -Wno-error=undef -Wno-error=conversion"
|
||||
- CC: clang
|
||||
CXX: clang++
|
||||
CFLAGS: "-mmacosx-version-min=10.15 -Wno-deprecated-declarations"
|
||||
- CC: gcc-12
|
||||
CXX: g++-12
|
||||
CFLAGS: "-mmacosx-version-min=10.15 -Wno-error=undef -Wno-error=conversion"
|
||||
build:
|
||||
- name: OpenSSL
|
||||
install: nghttp2 openssl
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
|
||||
- name: LibreSSL
|
||||
install: nghttp2 libressl
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/libressl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCMAKE_UNITY_BUILD=ON
|
||||
- name: libssh2
|
||||
install: nghttp2 openssl libssh2
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCURL_USE_LIBSSH2=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON
|
||||
- name: GnuTLS
|
||||
install: gnutls
|
||||
generate: -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCMAKE_SHARED_LINKER_FLAGS=-L/usr/local/lib -DCMAKE_EXE_LINKER_FLAGS=-L/usr/local/lib
|
||||
- name: OpenSSL
|
||||
install: nghttp2 openssl
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9
|
||||
- name: LibreSSL
|
||||
install: nghttp2 libressl
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/libressl -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCMAKE_UNITY_BUILD=ON
|
||||
- name: libssh2
|
||||
install: nghttp2 openssl libssh2
|
||||
generate: -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCURL_USE_LIBSSH2=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON
|
||||
- name: GnuTLS
|
||||
install: gnutls
|
||||
generate: -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_LDAPS=ON -DCMAKE_SHARED_LINKER_FLAGS=-L/usr/local/lib -DCMAKE_EXE_LINKER_FLAGS=-L/usr/local/lib
|
||||
steps:
|
||||
- run: echo libtool autoconf automake pkg-config ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
name: 'brew bundle'
|
||||
- run: echo libtool autoconf automake pkg-config ${{ matrix.build.install }} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
|
||||
name: 'brew bundle'
|
||||
|
||||
- run: "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: 'brew install'
|
||||
- run: "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: 'brew install'
|
||||
|
||||
- run: |
|
||||
case "${{ matrix.build.install }}" in
|
||||
*openssl*)
|
||||
;;
|
||||
*)
|
||||
if test -d /usr/local/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi;;
|
||||
esac
|
||||
name: 'brew unlink openssl'
|
||||
- run: |
|
||||
case "${{ matrix.build.install }}" in
|
||||
*openssl*)
|
||||
;;
|
||||
*)
|
||||
if test -d /usr/local/include/openssl; then
|
||||
brew unlink openssl
|
||||
fi;;
|
||||
esac
|
||||
name: 'brew unlink openssl'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: cmake -S. -Bbuild -DCURL_WERROR=ON -DPICKY_COMPILER=ON ${{ matrix.build.generate }}
|
||||
name: 'cmake generate'
|
||||
- run: cmake -S. -Bbuild -DCURL_WERROR=ON -DPICKY_COMPILER=ON ${{ matrix.build.generate }}
|
||||
name: 'cmake generate'
|
||||
|
||||
- run: cmake --build build
|
||||
name: 'cmake build'
|
||||
- run: cmake --build build
|
||||
name: 'cmake build'
|
||||
|
14
.github/workflows/man-examples.yml
vendored
14
.github/workflows/man-examples.yml
vendored
@ -7,17 +7,17 @@ name: manpage examples
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/opts/*.3'
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/opts/*.3'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/opts/*.3'
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/opts/*.3'
|
||||
|
||||
jobs:
|
||||
verify:
|
||||
|
398
.github/workflows/ngtcp2-linux.yml
vendored
398
.github/workflows/ngtcp2-linux.yml
vendored
@ -7,35 +7,35 @@ name: ngtcp2-linux
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
@ -63,208 +63,208 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: quictls
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug --disable-ntlm
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-openssl=$HOME/nghttpx
|
||||
- name: gnutls
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-gnutls=$HOME/nghttpx
|
||||
- name: wolfssl
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-wolfssl=$HOME/nghttpx
|
||||
- name: quictls
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug --disable-ntlm
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-openssl=$HOME/nghttpx
|
||||
- name: gnutls
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-gnutls=$HOME/nghttpx
|
||||
- name: wolfssl
|
||||
configure: >-
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib"
|
||||
--with-ngtcp2=$HOME/nghttpx --enable-warnings --enable-werror --enable-debug
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-wolfssl=$HOME/nghttpx
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev \
|
||||
nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin \
|
||||
libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools \
|
||||
texinfo texlive texlive-extra-utils autopoint libev-dev \
|
||||
apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto, apache2'
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 \
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev \
|
||||
nettle-dev libp11-kit-dev libtspi-dev libunistring-dev guile-2.2-dev libtasn1-bin \
|
||||
libtasn1-6-dev libidn2-0-dev gawk gperf libtss2-dev dns-root-data bison gtk-doc-tools \
|
||||
texinfo texlive texlive-extra-utils autopoint libev-dev \
|
||||
apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto, apache2'
|
||||
|
||||
- name: cache quictls
|
||||
uses: actions/cache@v3
|
||||
id: cache-quictls-no-deprecated
|
||||
env:
|
||||
cache-name: cache-quictls-no-deprecated
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.quictls-version }}
|
||||
- name: cache quictls
|
||||
uses: actions/cache@v3
|
||||
id: cache-quictls-no-deprecated
|
||||
env:
|
||||
cache-name: cache-quictls-no-deprecated
|
||||
with:
|
||||
path: /home/runner/quictls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.quictls-version }}
|
||||
|
||||
- if: steps.cache-quictls-no-deprecated.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl quictls
|
||||
cd quictls
|
||||
./config no-deprecated --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make
|
||||
name: 'build quictls'
|
||||
- if: steps.cache-quictls-no-deprecated.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.quictls-version }} https://github.com/quictls/openssl quictls
|
||||
cd quictls
|
||||
./config no-deprecated --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make
|
||||
name: 'build quictls'
|
||||
|
||||
- run: |
|
||||
cd $HOME/quictls
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
- run: |
|
||||
cd $HOME/quictls
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
|
||||
|
||||
- name: cache gnutls
|
||||
uses: actions/cache@v3
|
||||
id: cache-gnutls
|
||||
env:
|
||||
cache-name: cache-gnutls
|
||||
with:
|
||||
path: /home/runner/gnutls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.gnutls-version }}
|
||||
- name: cache gnutls
|
||||
uses: actions/cache@v3
|
||||
id: cache-gnutls
|
||||
env:
|
||||
cache-name: cache-gnutls
|
||||
with:
|
||||
path: /home/runner/gnutls
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.gnutls-version }}
|
||||
|
||||
- if: steps.cache-gnutls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.gnutls-version }} https://github.com/gnutls/gnutls.git
|
||||
cd gnutls
|
||||
./bootstrap
|
||||
./configure --prefix=$HOME/nghttpx \
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib -L$HOME/nghttpx/lib" \
|
||||
--with-included-libtasn1 --with-included-unistring \
|
||||
--disable-guile --disable-doc --disable-tests --disable-tools
|
||||
make
|
||||
name: 'build gnutls'
|
||||
- if: steps.cache-gnutls.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.gnutls-version }} https://github.com/gnutls/gnutls.git
|
||||
cd gnutls
|
||||
./bootstrap
|
||||
./configure --prefix=$HOME/nghttpx \
|
||||
PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/nghttpx/lib -L$HOME/nghttpx/lib" \
|
||||
--with-included-libtasn1 --with-included-unistring \
|
||||
--disable-guile --disable-doc --disable-tests --disable-tools
|
||||
make
|
||||
name: 'build gnutls'
|
||||
|
||||
- run: |
|
||||
cd $HOME/gnutls
|
||||
make install
|
||||
name: 'install gnutls'
|
||||
- run: |
|
||||
cd $HOME/gnutls
|
||||
make install
|
||||
name: 'install gnutls'
|
||||
|
||||
|
||||
- name: cache wolfssl
|
||||
uses: actions/cache@v3
|
||||
id: cache-wolfssl
|
||||
env:
|
||||
cache-name: cache-wolfssl
|
||||
with:
|
||||
path: /home/runner/wolfssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
- name: cache wolfssl
|
||||
uses: actions/cache@v3
|
||||
id: cache-wolfssl
|
||||
env:
|
||||
cache-name: cache-wolfssl
|
||||
with:
|
||||
path: /home/runner/wolfssl
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.wolfssl-version }}
|
||||
|
||||
- if: steps.cache-wolfssl.outputs.cache-hit != 'true' || ${{ env.wolfssl-version }} == 'master'
|
||||
run: |
|
||||
cd $HOME
|
||||
rm -rf wolfssl
|
||||
git clone --quiet --depth=1 -b ${{ env.wolfssl-version }} https://github.com/wolfSSL/wolfssl.git
|
||||
cd wolfssl
|
||||
./autogen.sh
|
||||
./configure --enable-all --enable-quic --prefix=$HOME/nghttpx
|
||||
make
|
||||
name: 'build wolfssl'
|
||||
- if: steps.cache-wolfssl.outputs.cache-hit != 'true' || ${{ env.wolfssl-version }} == 'master'
|
||||
run: |
|
||||
cd $HOME
|
||||
rm -rf wolfssl
|
||||
git clone --quiet --depth=1 -b ${{ env.wolfssl-version }} https://github.com/wolfSSL/wolfssl.git
|
||||
cd wolfssl
|
||||
./autogen.sh
|
||||
./configure --enable-all --enable-quic --prefix=$HOME/nghttpx
|
||||
make
|
||||
name: 'build wolfssl'
|
||||
|
||||
- run: |
|
||||
cd $HOME/wolfssl
|
||||
make install
|
||||
name: 'install wolfssl'
|
||||
- run: |
|
||||
cd $HOME/wolfssl
|
||||
make install
|
||||
name: 'install wolfssl'
|
||||
|
||||
|
||||
- name: cache nghttp3
|
||||
uses: actions/cache@v3
|
||||
id: cache-nghttp3
|
||||
env:
|
||||
cache-name: cache-nghttp3
|
||||
with:
|
||||
path: /home/runner/nghttp3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.nghttp3-version }}
|
||||
- name: cache nghttp3
|
||||
uses: actions/cache@v3
|
||||
id: cache-nghttp3
|
||||
env:
|
||||
cache-name: cache-nghttp3
|
||||
with:
|
||||
path: /home/runner/nghttp3
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.nghttp3-version }}
|
||||
|
||||
- if: steps.cache-nghttp3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make
|
||||
name: 'build nghttp3'
|
||||
- if: steps.cache-nghttp3.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make
|
||||
name: 'build nghttp3'
|
||||
|
||||
- run: |
|
||||
cd $HOME/nghttp3
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
- run: |
|
||||
cd $HOME/nghttp3
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl --with-gnutls --with-wolfssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl --with-gnutls --with-wolfssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
# depends on all other cached libs built so far
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v3
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v3
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
|
74
.github/workflows/proselint.yml
vendored
74
.github/workflows/proselint.yml
vendored
@ -7,17 +7,17 @@ name: proselint
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- '.github/workflows/proselint.yml'
|
||||
- '**.md'
|
||||
- '.github/workflows/proselint.yml'
|
||||
- '**.md'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- '.github/workflows/proselint.yml'
|
||||
- '**.md'
|
||||
- '.github/workflows/proselint.yml'
|
||||
- '**.md'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -29,40 +29,40 @@ jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: install prereqs
|
||||
run: sudo apt-get install python3-proselint
|
||||
- name: install prereqs
|
||||
run: sudo apt-get install python3-proselint
|
||||
|
||||
# config file help: https://github.com/amperser/proselint/
|
||||
- name: create proselint config
|
||||
run: |
|
||||
cat <<JSON > $HOME/.proselintrc
|
||||
{
|
||||
"checks": {
|
||||
"typography.diacritical_marks": false,
|
||||
"typography.symbols": false,
|
||||
"annotations.misc": false
|
||||
# config file help: https://github.com/amperser/proselint/
|
||||
- name: create proselint config
|
||||
run: |
|
||||
cat <<JSON > $HOME/.proselintrc
|
||||
{
|
||||
"checks": {
|
||||
"typography.diacritical_marks": false,
|
||||
"typography.symbols": false,
|
||||
"annotations.misc": false
|
||||
}
|
||||
}
|
||||
}
|
||||
JSON
|
||||
JSON
|
||||
|
||||
- name: check prose
|
||||
run: a=`git ls-files '*.md' | grep -v docs/CHECKSRC.md` && proselint $a README
|
||||
- name: check prose
|
||||
run: a=`git ls-files '*.md' | grep -v docs/CHECKSRC.md` && proselint $a README
|
||||
|
||||
# This is for CHECKSRC and files with aggressive exclamation mark needs
|
||||
- name: create second proselint config
|
||||
run: |
|
||||
cat <<JSON > $HOME/.proselintrc
|
||||
{
|
||||
"checks": {
|
||||
"typography.diacritical_marks": false,
|
||||
"typography.symbols": false,
|
||||
"typography.exclamation": false,
|
||||
"annotations.misc": false
|
||||
# This is for CHECKSRC and files with aggressive exclamation mark needs
|
||||
- name: create second proselint config
|
||||
run: |
|
||||
cat <<JSON > $HOME/.proselintrc
|
||||
{
|
||||
"checks": {
|
||||
"typography.diacritical_marks": false,
|
||||
"typography.symbols": false,
|
||||
"typography.exclamation": false,
|
||||
"annotations.misc": false
|
||||
}
|
||||
}
|
||||
}
|
||||
JSON
|
||||
JSON
|
||||
|
||||
- name: check special prose
|
||||
run: a=docs/CHECKSRC.md && proselint $a
|
||||
- name: check special prose
|
||||
run: a=docs/CHECKSRC.md && proselint $a
|
||||
|
296
.github/workflows/quiche-linux.yml
vendored
296
.github/workflows/quiche-linux.yml
vendored
@ -7,35 +7,35 @@ name: quiche
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
@ -62,149 +62,149 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: quiche
|
||||
install: >-
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev
|
||||
install_steps: pytest
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,/home/runner/quiche/target/release"
|
||||
--with-openssl=/home/runner/quiche/quiche/deps/boringssl/src
|
||||
--enable-debug
|
||||
--with-quiche=/home/runner/quiche/target/release
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-ca-fallback
|
||||
- name: quiche
|
||||
install: >-
|
||||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev
|
||||
install_steps: pytest
|
||||
configure: >-
|
||||
LDFLAGS="-Wl,-rpath,/home/runner/quiche/target/release"
|
||||
--with-openssl=/home/runner/quiche/quiche/deps/boringssl/src
|
||||
--enable-debug
|
||||
--with-quiche=/home/runner/quiche/target/release
|
||||
--with-test-nghttpx="$HOME/nghttpx/bin/nghttpx"
|
||||
--with-ca-fallback
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo apt-get install apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto'
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo apt-get install apache2 apache2-dev libnghttp2-dev
|
||||
name: 'install prereqs and impacket, pytest, crypto'
|
||||
|
||||
- name: cache nghttpx
|
||||
uses: actions/cache@v3
|
||||
id: cache-nghttpx
|
||||
env:
|
||||
cache-name: cache-nghttpx
|
||||
with:
|
||||
path: /home/runner/nghttpx
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-openssl-${{ env.openssl-version }}-nghttp3-${{ env.nghttp3-version }}-ngtcp2-${{ env.ngtcp2-version }}-nghttp2-${{ env.nghttp2-version }}
|
||||
- name: cache nghttpx
|
||||
uses: actions/cache@v3
|
||||
id: cache-nghttpx
|
||||
env:
|
||||
cache-name: cache-nghttpx
|
||||
with:
|
||||
path: /home/runner/nghttpx
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-openssl-${{ env.openssl-version }}-nghttp3-${{ env.nghttp3-version }}-ngtcp2-${{ env.ngtcp2-version }}-nghttp2-${{ env.nghttp2-version }}
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.openssl-version }} https://github.com/quictls/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b openssl-${{ env.openssl-version }} https://github.com/quictls/openssl
|
||||
cd openssl
|
||||
./config --prefix=$HOME/nghttpx --libdir=$HOME/nghttpx/lib
|
||||
make -j1 install_sw
|
||||
name: 'install quictls'
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp3-version }} https://github.com/ngtcp2/nghttp3
|
||||
cd nghttp3
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only
|
||||
make install
|
||||
name: 'install nghttp3'
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.ngtcp2-version }} https://github.com/ngtcp2/ngtcp2
|
||||
cd ngtcp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-lib-only --with-openssl
|
||||
make install
|
||||
name: 'install ngtcp2'
|
||||
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
- if: steps.cache-nghttpx.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet --depth=1 -b ${{ env.nghttp2-version }} https://github.com/nghttp2/nghttp2
|
||||
cd nghttp2
|
||||
autoreconf -fi
|
||||
./configure --prefix=$HOME/nghttpx PKG_CONFIG_PATH="$HOME/nghttpx/lib/pkgconfig" --enable-http3
|
||||
make install
|
||||
name: 'install nghttp2'
|
||||
|
||||
- name: cache quiche
|
||||
uses: actions/cache@v3
|
||||
id: cache-quiche
|
||||
env:
|
||||
cache-name: cache-quiche
|
||||
with:
|
||||
path: /home/runner/quiche
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quiche-${{ env.quiche-version }}
|
||||
- name: cache quiche
|
||||
uses: actions/cache@v3
|
||||
id: cache-quiche
|
||||
env:
|
||||
cache-name: cache-quiche
|
||||
with:
|
||||
path: /home/runner/quiche
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-quiche-${{ env.quiche-version }}
|
||||
|
||||
- if: steps.cache-quiche.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.quiche-version }} --recursive https://github.com/cloudflare/quiche.git
|
||||
cd quiche
|
||||
#### Work-around https://github.com/curl/curl/issues/7927 #######
|
||||
#### See https://github.com/alexcrichton/cmake-rs/issues/131 ####
|
||||
sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml
|
||||
- if: steps.cache-quiche.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.quiche-version }} --recursive https://github.com/cloudflare/quiche.git
|
||||
cd quiche
|
||||
#### Work-around https://github.com/curl/curl/issues/7927 #######
|
||||
#### See https://github.com/alexcrichton/cmake-rs/issues/131 ####
|
||||
sed -i -e 's/cmake = "0.1"/cmake = "=0.1.45"/' quiche/Cargo.toml
|
||||
|
||||
cargo build -v --package quiche --release --features ffi,pkg-config-meta,qlog --verbose
|
||||
mkdir -v quiche/deps/boringssl/src/lib
|
||||
ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/
|
||||
cargo build -v --package quiche --release --features ffi,pkg-config-meta,qlog --verbose
|
||||
mkdir -v quiche/deps/boringssl/src/lib
|
||||
ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) quiche/deps/boringssl/src/lib/
|
||||
|
||||
# include dir
|
||||
# /home/runner/quiche/quiche/deps/boringssl/src/include
|
||||
# lib dir
|
||||
# /home/runner/quiche/quiche/deps/boringssl/src/lib
|
||||
name: 'build quiche and boringssl'
|
||||
# include dir
|
||||
# /home/runner/quiche/quiche/deps/boringssl/src/include
|
||||
# lib dir
|
||||
# /home/runner/quiche/quiche/deps/boringssl/src/lib
|
||||
name: 'build quiche and boringssl'
|
||||
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v3
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
- name: cache mod_h2
|
||||
uses: actions/cache@v3
|
||||
id: cache-mod_h2
|
||||
env:
|
||||
cache-name: cache-mod_h2
|
||||
with:
|
||||
path: /home/runner/mod_h2
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd $HOME
|
||||
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||
cd mod_h2
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
name: 'install mod_h2'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
- run: |
|
||||
sudo python3 -m pip install -r tests/requirements.txt -r tests/http/requirements.txt
|
||||
name: 'install python test prereqs'
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- run: ./configure ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
- run: pytest -v tests
|
||||
name: 'run pytest'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
CURL_CI: github
|
||||
|
12
.github/workflows/reuse.yml
vendored
12
.github/workflows/reuse.yml
vendored
@ -8,11 +8,11 @@ name: REUSE compliance
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@ -24,6 +24,6 @@ jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@v2
|
||||
- uses: actions/checkout@v4
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@v2
|
||||
|
78
.github/workflows/spellcheck.yml
vendored
78
.github/workflows/spellcheck.yml
vendored
@ -6,24 +6,24 @@ name: spell
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- '**.md'
|
||||
- '**.3'
|
||||
- '**.1'
|
||||
- '**/spellcheck.yml'
|
||||
- '**/spellcheck.yaml'
|
||||
- '**/wordlist.txt'
|
||||
- '**.md'
|
||||
- '**.3'
|
||||
- '**.1'
|
||||
- '**/spellcheck.yml'
|
||||
- '**/spellcheck.yaml'
|
||||
- '**/wordlist.txt'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- '**.md'
|
||||
- '**.3'
|
||||
- '**.1'
|
||||
- '**/spellcheck.yml'
|
||||
- '**/spellcheck.yaml'
|
||||
- '**/wordlist.txt'
|
||||
- '**.md'
|
||||
- '**.3'
|
||||
- '**.1'
|
||||
- '**/spellcheck.yml'
|
||||
- '**/spellcheck.yaml'
|
||||
- '**/wordlist.txt'
|
||||
|
||||
permissions: {}
|
||||
|
||||
@ -31,36 +31,36 @@ jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: install pandoc
|
||||
run: sudo apt-get install pandoc
|
||||
- name: install pandoc
|
||||
run: sudo apt-get install pandoc
|
||||
|
||||
- name: build curl.1
|
||||
run: |
|
||||
autoreconf -fi
|
||||
./configure --without-ssl
|
||||
make -C docs
|
||||
- name: build curl.1
|
||||
run: |
|
||||
autoreconf -fi
|
||||
./configure --without-ssl
|
||||
make -C docs
|
||||
|
||||
- name: strip "uncheckable" sections from .3 pages
|
||||
run: find docs -name "*.3" -size +40c | sed 's/\.3//' | xargs -t -n1 -I OO ./.github/scripts/cleanspell.pl OO.3 OO.33
|
||||
- name: strip "uncheckable" sections from .3 pages
|
||||
run: find docs -name "*.3" -size +40c | sed 's/\.3//' | xargs -t -n1 -I OO ./.github/scripts/cleanspell.pl OO.3 OO.33
|
||||
|
||||
- name: convert .3 man pages to markdown
|
||||
run: find docs -name "*.33" -size +40c | sed 's/\.33//' | xargs -t -n1 -I OO pandoc -f man -t markdown OO.33 -o OO.md
|
||||
- name: convert .3 man pages to markdown
|
||||
run: find docs -name "*.33" -size +40c | sed 's/\.33//' | xargs -t -n1 -I OO pandoc -f man -t markdown OO.33 -o OO.md
|
||||
|
||||
- name: convert .1 man pages to markdown
|
||||
run: find docs -name "*.1" -size +40c | sed 's/\.1//' | xargs -t -n1 -I OO pandoc OO.1 -o OO.md
|
||||
- name: convert .1 man pages to markdown
|
||||
run: find docs -name "*.1" -size +40c | sed 's/\.1//' | xargs -t -n1 -I OO pandoc OO.1 -o OO.md
|
||||
|
||||
- name: trim the curl.1 markdown file
|
||||
run: |
|
||||
perl -pi -e 's/^ .*//' docs/curl.md
|
||||
perl -pi -e 's/\-\-[\a-z0-9-]*//ig' docs/curl.md
|
||||
perl -pi -e 's!https://[a-z0-9%/.-]*!!ig' docs/curl.md
|
||||
- name: trim the curl.1 markdown file
|
||||
run: |
|
||||
perl -pi -e 's/^ .*//' docs/curl.md
|
||||
perl -pi -e 's/\-\-[\a-z0-9-]*//ig' docs/curl.md
|
||||
perl -pi -e 's!https://[a-z0-9%/.-]*!!ig' docs/curl.md
|
||||
|
||||
- name: setup the custom wordlist
|
||||
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
|
||||
- name: setup the custom wordlist
|
||||
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
|
||||
|
||||
- name: Check Spelling
|
||||
uses: rojopolis/spellcheck-github-actions@v0
|
||||
with:
|
||||
config_path: .github/scripts/spellcheck.yaml
|
||||
- name: Check Spelling
|
||||
uses: rojopolis/spellcheck-github-actions@v0
|
||||
with:
|
||||
config_path: .github/scripts/spellcheck.yaml
|
||||
|
10
.github/workflows/synopsis.yml
vendored
10
.github/workflows/synopsis.yml
vendored
@ -7,15 +7,15 @@ name: SYNOPSIS
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths:
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
- 'docs/libcurl/curl_*.3'
|
||||
|
||||
jobs:
|
||||
verify:
|
||||
|
102
.github/workflows/torture.yml
vendored
102
.github/workflows/torture.yml
vendored
@ -7,35 +7,35 @@ name: Linux torture
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
@ -56,37 +56,37 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: torture
|
||||
install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
configure: --with-openssl --enable-debug --enable-ares --enable-websockets
|
||||
tflags: -n -t --shallow=25 !FTP
|
||||
- name: torture-ftp
|
||||
install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
configure: --with-openssl --enable-debug --enable-ares
|
||||
tflags: -n -t --shallow=20 FTP
|
||||
- name: torture
|
||||
install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
configure: --with-openssl --enable-debug --enable-ares --enable-websockets
|
||||
tflags: -n -t --shallow=25 !FTP
|
||||
- name: torture-ftp
|
||||
install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
|
||||
configure: --with-openssl --enable-debug --enable-ares
|
||||
tflags: -n -t --shallow=20 FTP
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-torture
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- run: make V=1 test-torture
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
124
.github/workflows/wolfssl.yml
vendored
124
.github/workflows/wolfssl.yml
vendored
@ -7,35 +7,35 @@ name: Linux wolfSSL
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '*/ci'
|
||||
- master
|
||||
- '*/ci'
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- master
|
||||
paths-ignore:
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
- '**/*.md'
|
||||
- '**/CMakeLists.txt'
|
||||
- '.azure-pipelines.yml'
|
||||
- '.circleci/**'
|
||||
- '.cirrus.yml'
|
||||
- 'appveyor.yml'
|
||||
- 'CMake/**'
|
||||
- 'packages/**'
|
||||
- 'plan9/**'
|
||||
- 'projects/**'
|
||||
- 'winbuild/**'
|
||||
|
||||
concurrency:
|
||||
# Hardcoded workflow filename as workflow name above is just Linux again
|
||||
@ -56,50 +56,50 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
build:
|
||||
- name: wolfssl (configured with --enable-all)
|
||||
install:
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
|
||||
wolfssl-configure: --enable-all
|
||||
- name: wolfssl (configured with --enable-opensslextra)
|
||||
install:
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
|
||||
wolfssl-configure: --enable-opensslextra
|
||||
- name: wolfssl (configured with --enable-all)
|
||||
install:
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
|
||||
wolfssl-configure: --enable-all
|
||||
- name: wolfssl (configured with --enable-opensslextra)
|
||||
install:
|
||||
configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
|
||||
wolfssl-configure: --enable-opensslextra
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
|
||||
sudo python3 -m pip install impacket
|
||||
name: 'install prereqs and impacket'
|
||||
|
||||
- run: |
|
||||
WOLFSSL_VER=5.6.3
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz
|
||||
tar -xzf v$WOLFSSL_VER-stable.tar.gz
|
||||
cd wolfssl-$WOLFSSL_VER-stable
|
||||
./autogen.sh
|
||||
./configure --enable-tls13 ${{ matrix.build.wolfssl-configure }} --enable-harden --prefix=$HOME/wssl
|
||||
make install
|
||||
name: 'install wolfssl'
|
||||
- run: |
|
||||
WOLFSSL_VER=5.6.3
|
||||
curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz
|
||||
tar -xzf v$WOLFSSL_VER-stable.tar.gz
|
||||
cd wolfssl-$WOLFSSL_VER-stable
|
||||
./autogen.sh
|
||||
./configure --enable-tls13 ${{ matrix.build.wolfssl-configure }} --enable-harden --prefix=$HOME/wssl
|
||||
make install
|
||||
name: 'install wolfssl'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
- run: autoreconf -fi
|
||||
name: 'autoreconf'
|
||||
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
- run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
|
||||
name: 'configure'
|
||||
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
- run: make V=1
|
||||
name: 'make'
|
||||
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
- run: make V=1 examples
|
||||
name: 'make examples'
|
||||
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
- run: make V=1 -C tests
|
||||
name: 'make tests'
|
||||
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
- run: make V=1 test-ci
|
||||
name: 'run tests'
|
||||
env:
|
||||
TFLAGS: "${{ matrix.build.tflags }}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user