config.yml 5.4 KB

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