2
0

config.yml 6.9 KB

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