config.yml 6.6 KB

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