#*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # # Copyright (C) Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms # are also available at https://curl.se/docs/copyright.html. # # You may opt to use, copy, modify, merge, publish, distribute and/or sell # copies of the Software, and permit persons to whom the Software is # furnished to do so, under the terms of the COPYING file. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # # SPDX-License-Identifier: curl # ########################################################################### # View these jobs in the browser: https://app.circleci.com/pipelines/github/curl/curl # Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/configuration-reference/ version: 2.1 commands: install-cares: steps: - run: command: | sudo apt-get update && sudo apt-get install -y libc-ares-dev install-libssh: steps: - run: command: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update && sudo apt-get install -y libssh-dev install-deps: steps: - run: command: | sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip python3 -m venv ~/venv ~/venv/bin/pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r tests/requirements.txt configure: steps: - run: command: | autoreconf -fi ./configure --disable-dependency-tracking --enable-option-checking=fatal --enable-unity --enable-werror --enable-warnings \ --with-openssl \ || { tail -1000 config.log; false; } configure-no-proxy: steps: - run: command: | autoreconf -fi ./configure --disable-dependency-tracking --enable-option-checking=fatal --enable-unity --enable-werror \ --with-openssl --disable-proxy \ || { tail -1000 config.log; false; } configure-libssh: steps: - run: command: | autoreconf -fi ./configure --disable-dependency-tracking --enable-option-checking=fatal --enable-unity --enable-werror --enable-warnings \ --with-openssl --with-libssh \ || { tail -1000 config.log; false; } configure-cares: steps: - run: command: | autoreconf -fi ./configure --disable-dependency-tracking --enable-option-checking=fatal --enable-unity --enable-werror --enable-warnings \ --with-openssl --enable-ares \ || { tail -1000 config.log; false; } configure-cares-debug: steps: - run: command: | autoreconf -fi ./configure --disable-dependency-tracking --enable-option-checking=fatal --enable-unity --enable-werror --enable-debug \ --with-openssl --enable-ares \ || { tail -1000 config.log; false; } build: steps: - run: make -j3 V=1 - run: src/curl --disable --version - run: make -j3 V=1 examples test: steps: - run: command: | source ~/venv/bin/activate # Revert a CircleCI-specific local setting that makes test 1459 # return 67 (CURLE_LOGIN_DENIED) instead of the # expected 60 (CURLE_PEER_FAILED_VERIFICATION). echo 'StrictHostKeyChecking yes' >> ~/.ssh/config make -j3 V=1 test-ci TFLAGS='-j14' executors: ubuntu: machine: image: ubuntu-2204:2025.09.1 jobs: basic: executor: ubuntu steps: - checkout - install-deps - configure - build - test no-proxy: executor: ubuntu steps: - checkout - install-deps - configure-no-proxy - build - test cares: executor: ubuntu steps: - checkout - install-deps - install-cares - configure-cares - build - test libssh: executor: ubuntu steps: - checkout - install-deps - install-libssh - configure-libssh - build - test arm: machine: image: ubuntu-2204:2025.09.1 resource_class: arm.medium steps: - checkout - install-deps - configure - build - test arm-cares: machine: image: ubuntu-2204:2025.09.1 resource_class: arm.medium steps: - checkout - install-deps - install-cares - configure-cares-debug - build - test workflows: x86-openssl: jobs: - basic openssl-c-ares: jobs: - cares openssl-libssh: jobs: - libssh openssl-no-proxy: jobs: - no-proxy arm-openssl: jobs: - arm arm-openssl-c-ares: jobs: - arm-cares