config.yml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  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. # View these jobs in the browser: https://app.circleci.com/pipelines/github/curl/curl
  25. # Use the latest 2.1 version of CircleCI pipeline process engine. See: https://circleci.com/docs/configuration-reference/
  26. version: 2.1
  27. commands:
  28. install-cares:
  29. steps:
  30. - run:
  31. command: |
  32. sudo apt-get update && sudo apt-get install -y libc-ares-dev
  33. install-libssh:
  34. steps:
  35. - run:
  36. command: |
  37. sudo apt-get update && sudo apt-get install -y libssh-dev
  38. install-deps:
  39. steps:
  40. - run:
  41. command: |
  42. sudo apt-get update && sudo apt-get install -y libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev python3-pip libpsl-dev
  43. sudo python3 -m pip install impacket
  44. install-wolfssl:
  45. steps:
  46. - run:
  47. command: |
  48. # renovate: datasource=github-tags depName=wolfSSL/wolfssl versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com
  49. WOLFSSL_VER=5.7.4
  50. echo "Installing wolfSSL $WOLFSSL_VER"
  51. curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz
  52. tar -xzf v$WOLFSSL_VER-stable.tar.gz
  53. cd wolfssl-$WOLFSSL_VER-stable
  54. ./autogen.sh
  55. ./configure --disable-dependency-tracking --enable-tls13 --enable-all --enable-harden --prefix=$HOME/wssl
  56. make install
  57. install-wolfssh:
  58. steps:
  59. - run:
  60. command: |
  61. # renovate: datasource=github-tags depName=wolfSSL/wolfssh versioning=semver extractVersion=^v?(?<version>.+)-stable$ registryUrl=https://github.com
  62. WOLFSSH_VER=1.4.19
  63. echo "Installing wolfSSH $WOLFSSH_VER"
  64. curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssh/archive/v$WOLFSSH_VER-stable.tar.gz
  65. tar -xzf v$WOLFSSH_VER-stable.tar.gz
  66. cd wolfssh-$WOLFSSH_VER-stable
  67. ./autogen.sh
  68. ./configure --disable-dependency-tracking --with-wolfssl=$HOME/wssl --prefix=$HOME/wssh --enable-scp --enable-sftp --disable-examples
  69. make install
  70. configure:
  71. steps:
  72. - run:
  73. command: |
  74. autoreconf -fi
  75. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
  76. --with-openssl \
  77. || { tail -1000 config.log; false; }
  78. configure-openssl-no-verbose:
  79. steps:
  80. - run:
  81. command: |
  82. autoreconf -fi
  83. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror \
  84. --with-openssl --disable-verbose \
  85. || { tail -1000 config.log; false; }
  86. configure-no-proxy:
  87. steps:
  88. - run:
  89. command: |
  90. autoreconf -fi
  91. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror \
  92. --with-openssl --disable-proxy \
  93. || { tail -1000 config.log; false; }
  94. configure-libssh:
  95. steps:
  96. - run:
  97. command: |
  98. autoreconf -fi
  99. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
  100. --with-openssl --with-libssh \
  101. || { tail -1000 config.log; false; }
  102. configure-cares:
  103. steps:
  104. - run:
  105. command: |
  106. autoreconf -fi
  107. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
  108. --with-openssl --enable-ares \
  109. || { tail -1000 config.log; false; }
  110. configure-wolfssh:
  111. steps:
  112. - run:
  113. command: |
  114. autoreconf -fi
  115. LDFLAGS="-Wl,-rpath,$HOME/wssh/lib" \
  116. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-warnings \
  117. --with-wolfssl=$HOME/wssl --with-wolfssh=$HOME/wssh \
  118. || { tail -1000 config.log; false; }
  119. configure-cares-debug:
  120. steps:
  121. - run:
  122. command: |
  123. autoreconf -fi
  124. ./configure --disable-dependency-tracking --enable-unity --enable-test-bundles --enable-werror --enable-debug \
  125. --with-openssl --enable-ares \
  126. || { tail -1000 config.log; false; }
  127. build:
  128. steps:
  129. - run: make -j3 V=1
  130. - run: make -j3 V=1 examples
  131. test:
  132. steps:
  133. - run: make -j3 V=1 test-ci TFLAGS='-j14'
  134. executors:
  135. ubuntu:
  136. machine:
  137. image: ubuntu-2004:2024.01.1
  138. jobs:
  139. basic:
  140. executor: ubuntu
  141. steps:
  142. - checkout
  143. - install-deps
  144. - configure
  145. - build
  146. - test
  147. no-verbose:
  148. executor: ubuntu
  149. steps:
  150. - checkout
  151. - install-deps
  152. - configure-openssl-no-verbose
  153. - build
  154. wolfssh:
  155. executor: ubuntu
  156. steps:
  157. - checkout
  158. - install-deps
  159. - install-wolfssl
  160. - install-wolfssh
  161. - configure-wolfssh
  162. - build
  163. no-proxy:
  164. executor: ubuntu
  165. steps:
  166. - checkout
  167. - install-deps
  168. - configure-no-proxy
  169. - build
  170. - test
  171. cares:
  172. executor: ubuntu
  173. steps:
  174. - checkout
  175. - install-deps
  176. - install-cares
  177. - configure-cares
  178. - build
  179. - test
  180. libssh:
  181. executor: ubuntu
  182. steps:
  183. - checkout
  184. - install-deps
  185. - install-libssh
  186. - configure-libssh
  187. - build
  188. - test
  189. arm:
  190. machine:
  191. image: ubuntu-2004:2024.01.1
  192. resource_class: arm.medium
  193. steps:
  194. - checkout
  195. - install-deps
  196. - configure
  197. - build
  198. - test
  199. arm-cares:
  200. machine:
  201. image: ubuntu-2004:2024.01.1
  202. resource_class: arm.medium
  203. steps:
  204. - checkout
  205. - install-deps
  206. - install-cares
  207. - configure-cares-debug
  208. - build
  209. - test
  210. workflows:
  211. x86-openssl:
  212. jobs:
  213. - basic
  214. openssl-c-ares:
  215. jobs:
  216. - cares
  217. openssl-libssh:
  218. jobs:
  219. - libssh
  220. openssl-no-proxy:
  221. jobs:
  222. - no-proxy
  223. openssl-no-verbose:
  224. jobs:
  225. - no-verbose
  226. wolfssl-wolfssh:
  227. jobs:
  228. - wolfssh
  229. arm-openssl:
  230. jobs:
  231. - arm
  232. arm-openssl-c-ares:
  233. jobs:
  234. - arm-cares