config.yml 5.6 KB

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