autoreconf -fi
./configure --disable-proxy --enable-werror --with-openssl
+ configure-macos-normal:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --without-ssl CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-debug:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --without-ssl --enable-debug CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-libssh2:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --without-ssl --with-libssh2=/opt/homebrew/opt/libssh2 --enable-debug CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-libssh-c-ares:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --with-openssl --with-libssh --enable-ares --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-libssh:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --with-openssl --with-libssh --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-c-ares:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --without-ssl --enable-ares --enable-debug CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-http-only:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-maintainer-mode --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 --disable-unix-sockets --disable-shared --without-brotli --without-gssapi --without-libidn2 --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib --enable-debug CFLAGS='-Wno-vla -mmacosx-version-min=10.15'
+
+ configure-macos-securetransport-http2:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --with-secure-transport CFLAGS='-Wno-vla -mmacosx-version-min=10.8'
+
+ configure-macos-openssl-http2:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-libressl-http2:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix libressl)/lib/pkgconfig" CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-torture:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --disable-shared --disable-threaded-resolver --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
+ configure-macos-torture-ftp:
+ steps:
+ - run:
+ command: |
+ autoreconf -fi
+ ./configure --enable-warnings --enable-websockets --disable-shared --disable-threaded-resolver --with-openssl --enable-debug PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" CFLAGS='-Wno-vla -mmacosx-version-min=10.9'
+
install-cares:
steps:
- run:
sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip
sudo python3 -m pip install impacket
+ install-deps-brew:
+ steps:
+ - run:
+ command: |
+ # Drop libressl as long as we're not trying to build it
+ echo libtool autoconf automake pkg-config nghttp2 libssh2 openssl libssh c-ares | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
+ while [ $? -eq 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
+ sudo python3 -m pip install impacket
+
configure-libssh:
steps:
- run:
- run: make -j3 V=1
- run: make -j3 V=1 examples
+ build-macos:
+ steps:
+ - run: make -j5 V=1
+ - run: make -j5 V=1 examples
+
test:
steps:
- run: make -j3 V=1 test-ci
+ test-macos:
+ steps:
+ - run: make -j5 V=1 test-ci
+
+ test-torture:
+ steps:
+ - run: make -j5 V=1 test-ci TFLAGS="-n -t --shallow=25 !FTP"
+
+ test-torture-ftp:
+ steps:
+ - run: make -j5 V=1 test-ci TFLAGS="-n -t --shallow=20 FTP"
+
executors:
ubuntu:
machine:
- build
- test
+ macos-arm-normal:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-normal
+ - build-macos
+ - test-macos
+
+ macos-arm-debug:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-debug
+ - build-macos
+ - test-macos
+
+ macos-arm-libssh2:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-libssh2
+ - build-macos
+ - test-macos
+
+ macos-arm-libssh-c-ares:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-libssh-c-ares
+ - build-macos
+ - test-macos
+
+ macos-arm-libssh:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-libssh
+ - build-macos
+ - test-macos
+
+ macos-arm-c-ares:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-c-ares
+ - build-macos
+ - test-macos
+
+ macos-arm-http-only:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-http-only
+ - build-macos
+ - test-macos
+
+ macos-arm-http-securetransport-http2:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-securetransport-http2
+ - build-macos
+ - test-macos
+
+ macos-arm-http-openssl-http2:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-openssl-http2
+ - build-macos
+ - test-macos
+
+ macos-arm-http-libressl-http2:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-libressl-http2
+ - build-macos
+ - test-macos
+
+ macos-arm-http-torture:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-torture
+ - build-macos
+ - test-torture
+
+ macos-arm-http-torture-ftp:
+ macos:
+ xcode: 15.0.0
+ resource_class: macos.m1.medium.gen1
+ steps:
+ - checkout
+ - install-deps-brew
+ - configure-macos-torture-ftp
+ - build-macos
+ - test-torture-ftp
+
workflows:
x86-openssl:
jobs:
arm-openssl-c-ares:
jobs:
- arm-cares
+
+ macos-arm-normal:
+ jobs:
+ - macos-arm-normal
+
+ macos-arm-debug:
+ jobs:
+ - macos-arm-debug
+
+ macos-arm-libssh2:
+ jobs:
+ - macos-arm-libssh2
+
+ macos-arm-libssh-c-ares:
+ jobs:
+ - macos-arm-libssh-c-ares
+
+ macos-arm-libssh:
+ jobs:
+ - macos-arm-libssh
+
+ macos-arm-c-ares:
+ jobs:
+ - macos-arm-c-ares
+
+ macos-arm-http-only:
+ jobs:
+ - macos-arm-http-only
+
+ macos-arm-http-securetransport-http2:
+ jobs:
+ - macos-arm-http-securetransport-http2
+
+ macos-arm-http-openssl-http2:
+ jobs:
+ - macos-arm-http-openssl-http2
+
+ # There are problem linking with LibreSSL on the CI boxes that prevent this
+ # from working.
+ #macos-arm-http-libressl-http2:
+ # jobs:
+ # - macos-arm-http-libressl-http2
+
+ macos-arm-http-torture:
+ jobs:
+ - macos-arm-http-torture
+
+ macos-arm-http-torture-ftp:
+ jobs:
+ - macos-arm-http-torture-ftp
%container_cmd% -l -c "cd $(echo '%cd%') && %make_cmd% install && PATH=/usr/bin:/bin find . -type f -path '*/.libs/*.exe' -print -execdir mv -t .. {} \;"
test_script: |
%container_cmd% -l -c "cd $(echo '%cd%') && %make_cmd% TFLAGS='!IDN !SCP ~612 ~1056 %tests%' test-ci"
-
-macos_task:
- skip: "changesIncludeOnly(
- '.azure-pipelines.yml',
- '.circleci/**',
- '.github/**',
- 'appveyor.yml',
- 'packages/**',
- 'plan9/**',
- 'projects/**',
- 'winbuild/**'
- )"
-
- name: macOS arm64
- macos_instance:
- image: ghcr.io/cirruslabs/macos-ventura-xcode:latest
-
- matrix:
- - name: macOS arm64 normal
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2
- configure: --without-ssl
- - name: macOS arm64 debug
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2
- configure: --without-ssl --enable-debug
- - name: macOS arm64 libssh2
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 libssh2
- configure: --without-ssl --enable-debug --with-libssh2=/opt/homebrew/opt/libssh2
- TFLAGS: -n !SFTP !SCP
- - name: macOS arm64 libssh-c-ares
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 openssl libssh
- configure: --enable-debug --with-openssl=/opt/homebrew/opt/openssl --with-libssh --enable-ares
- - name: macOS arm64 libssh
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 openssl libssh
- configure: --enable-debug --with-openssl=/opt/homebrew/opt/openssl --with-libssh
- - name: macOS arm64 c-ares
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2
- configure: --without-ssl --enable-debug --enable-ares
- - name: macOS arm64 HTTP only
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.15
- install_packages: nghttp2
- configure: --enable-debug --enable-maintainer-mode --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 --disable-unix-sockets --disable-shared --without-brotli --without-gssapi --without-libidn2 --without-libpsl --without-librtmp --without-libssh2 --without-nghttp2 --without-ntlm-auth --without-ssl --without-zlib
- - name: macOS arm64 SecureTransport http2
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.8
- install_packages: nghttp2
- configure: --with-secure-transport
- - name: macOS arm64 OpenSSL http2
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 openssl
- configure: --enable-debug --with-openssl=/opt/homebrew/opt/openssl
- - name: macOS arm64 LibreSSL http2
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 libressl
- configure: --enable-debug --with-openssl=/opt/homebrew/opt/libressl
- - name: macOS arm64 torture
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 openssl
- configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/opt/homebrew/opt/openssl
- TFLAGS: -n -t --shallow=25 !FTP
- - name: macOS arm64 torture-ftp
- env:
- CFLAGS: -Wno-vla -mmacosx-version-min=10.9
- install_packages: nghttp2 openssl
- configure: --enable-debug --disable-shared --disable-threaded-resolver --with-openssl=/opt/homebrew/opt/openssl
- TFLAGS: -n -t --shallow=20 FTP
-
- env:
- CIRRUS_CLONE_DEPTH: 10
- MAKE_FLAGS: -j 12
-
- pkginstall_script:
- - echo libtool autoconf automake pkg-config ${install_packages} | xargs -Ix -n1 echo brew '"x"' > /tmp/Brewfile
- - "while [[ $? == 0 ]]; do for i in 1 2 3; do brew update && brew bundle install --no-lock --file /tmp/Brewfile && break 2 || { echo Error: wait to try again; sleep 10; } done; false Too many retries; done"
- - sudo -H python3 -m pip install --upgrade pip
- - sudo -H python3 -m pip install impacket
- configure_script:
- - autoreconf -fi
- - ./configure --enable-warnings --enable-werror --enable-websockets ${configure}
- compile_script:
- - make V=1 && make V=1 examples && cd tests && make V=1
- test_script:
- - make V=1 test-ci
- install_script:
- - sudo -H make V=1 install