1#*************************************************************************** 2# _ _ ____ _ 3# Project ___| | | | _ \| | 4# / __| | | | |_) | | 5# | (__| |_| | _ <| |___ 6# \___|\___/|_| \_\_____| 7# 8# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 9# 10# This software is licensed as described in the file COPYING, which 11# you should have received as part of this distribution. The terms 12# are also available at https://curl.se/docs/copyright.html. 13# 14# You may opt to use, copy, modify, merge, publish, distribute and/or sell 15# copies of the Software, and permit persons to whom the Software is 16# furnished to do so, under the terms of the COPYING file. 17# 18# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19# KIND, either express or implied. 20# 21# SPDX-License-Identifier: curl 22# 23########################################################################### 24 25# View these jobs in the browser: https://app.circleci.com/pipelines/github/curl/curl 26 27# Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/configuration-reference/ 28version: 2.1 29 30commands: 31 install-cares: 32 steps: 33 - run: 34 command: | 35 sudo apt-get update && sudo apt-get install -y libc-ares-dev 36 37 install-libssh: 38 steps: 39 - run: 40 command: | 41 sudo apt-get update && sudo apt-get install -y libssh-dev 42 43 install-deps: 44 steps: 45 - run: 46 command: | 47 sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip libpsl-dev 48 sudo python3 -m pip install impacket 49 50 install-wolfssl: 51 steps: 52 - run: 53 command: | 54 # renovate: datasource=github-tags depName=wolfSSL/wolfssl versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com 55 WOLFSSL_VER=5.7.4 56 echo "Installing wolfSSL $WOLFSSL_VER" 57 curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz 58 tar -xzf v$WOLFSSL_VER-stable.tar.gz 59 cd wolfssl-$WOLFSSL_VER-stable 60 ./autogen.sh 61 ./configure --disable-dependency-tracking --enable-tls13 --enable-all --enable-harden --prefix=$HOME/wssl 62 make install 63 64 install-wolfssh: 65 steps: 66 - run: 67 command: | 68 # renovate: datasource=github-tags depName=wolfSSL/wolfssh versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com 69 WOLFSSH_VER=1.4.19 70 echo "Installing wolfSSH $WOLFSSH_VER" 71 curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssh/archive/v$WOLFSSH_VER-stable.tar.gz 72 tar -xzf v$WOLFSSH_VER-stable.tar.gz 73 cd wolfssh-$WOLFSSH_VER-stable 74 ./autogen.sh 75 ./configure --disable-dependency-tracking --with-wolfssl=$HOME/wssl --prefix=$HOME/wssh --enable-scp --enable-sftp --disable-examples 76 make install 77 78 configure: 79 steps: 80 - run: 81 command: | 82 autoreconf -fi 83 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \ 84 --with-openssl \ 85 || { tail -1000 config.log; false; } 86 87 configure-openssl-no-verbose: 88 steps: 89 - run: 90 command: | 91 autoreconf -fi 92 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror \ 93 --with-openssl --disable-verbose \ 94 || { tail -1000 config.log; false; } 95 96 configure-no-proxy: 97 steps: 98 - run: 99 command: | 100 autoreconf -fi 101 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror \ 102 --with-openssl --disable-proxy \ 103 || { tail -1000 config.log; false; } 104 105 configure-libssh: 106 steps: 107 - run: 108 command: | 109 autoreconf -fi 110 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \ 111 --with-openssl --with-libssh \ 112 || { tail -1000 config.log; false; } 113 114 configure-cares: 115 steps: 116 - run: 117 command: | 118 autoreconf -fi 119 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \ 120 --with-openssl --enable-ares \ 121 || { tail -1000 config.log; false; } 122 123 configure-wolfssh: 124 steps: 125 - run: 126 command: | 127 autoreconf -fi 128 LDFLAGS="-Wl,-rpath,$HOME/wssh/lib" \ 129 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \ 130 --with-wolfssl=$HOME/wssl --with-wolfssh=$HOME/wssh \ 131 || { tail -1000 config.log; false; } 132 133 configure-cares-debug: 134 steps: 135 - run: 136 command: | 137 autoreconf -fi 138 ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-debug \ 139 --with-openssl --enable-ares \ 140 || { tail -1000 config.log; false; } 141 142 build: 143 steps: 144 - run: make -j3 V=1 145 - run: make -j3 V=1 examples 146 147 test: 148 steps: 149 - run: make -j3 V=1 test-ci TFLAGS='-j14' 150 151executors: 152 ubuntu: 153 machine: 154 image: ubuntu-2004:2024.01.1 155 156jobs: 157 basic: 158 executor: ubuntu 159 steps: 160 - checkout 161 - install-deps 162 - configure 163 - build 164 - test 165 166 no-verbose: 167 executor: ubuntu 168 steps: 169 - checkout 170 - install-deps 171 - configure-openssl-no-verbose 172 - build 173 174 wolfssh: 175 executor: ubuntu 176 steps: 177 - checkout 178 - install-deps 179 - install-wolfssl 180 - install-wolfssh 181 - configure-wolfssh 182 - build 183 184 no-proxy: 185 executor: ubuntu 186 steps: 187 - checkout 188 - install-deps 189 - configure-no-proxy 190 - build 191 - test 192 193 cares: 194 executor: ubuntu 195 steps: 196 - checkout 197 - install-deps 198 - install-cares 199 - configure-cares 200 - build 201 - test 202 203 libssh: 204 executor: ubuntu 205 steps: 206 - checkout 207 - install-deps 208 - install-libssh 209 - configure-libssh 210 - build 211 - test 212 213 arm: 214 machine: 215 image: ubuntu-2004:2024.01.1 216 resource_class: arm.medium 217 steps: 218 - checkout 219 - install-deps 220 - configure 221 - build 222 - test 223 224 arm-cares: 225 machine: 226 image: ubuntu-2004:2024.01.1 227 resource_class: arm.medium 228 steps: 229 - checkout 230 - install-deps 231 - install-cares 232 - configure-cares-debug 233 - build 234 - test 235 236workflows: 237 x86-openssl: 238 jobs: 239 - basic 240 241 openssl-c-ares: 242 jobs: 243 - cares 244 245 openssl-libssh: 246 jobs: 247 - libssh 248 249 openssl-no-proxy: 250 jobs: 251 - no-proxy 252 253 openssl-no-verbose: 254 jobs: 255 - no-verbose 256 257 wolfssl-wolfssh: 258 jobs: 259 - wolfssh 260 261 arm-openssl: 262 jobs: 263 - arm 264 265 arm-openssl-c-ares: 266 jobs: 267 - arm-cares 268