.gitlab-ci.yml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. variables:
  2. BUILD_IMAGES_PROJECT: openconnect/build-images
  3. CENTOS6_BUILD: openconnect-cli-centos6
  4. CENTOS7_BUILD: openconnect-cli-centos7
  5. CENTOS8_BUILD: openconnect-cli-centos8
  6. FEDORA_BUILD: openconnect-cli-fedora35
  7. MINGW32_BUILD: openconnect-cli-mingw32
  8. MINGW64_BUILD: openconnect-cli-mingw64
  9. UBUNTU_BUILD: openconnect-cli-ubuntu
  10. ANDROID_BUILD: openconnect-cli-android
  11. ANDROID_TOOLCHAINDIR: /opt/android-sdk-linux_x86/toolchains
  12. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
  13. CentOS7/GnuTLS:
  14. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD
  15. script:
  16. - ./autogen.sh
  17. # For reasons that are not clear, OpenConnect fails to handshake a TLS connection to Python 3.6+Flask
  18. # (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135245618#L520), so we disable the
  19. # Flask-based authentication tests.
  20. - ./configure --with-java --enable-ppp-tests --disable-flask-tests CFLAGS=-g
  21. - make -j4
  22. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  23. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  24. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  25. - sysctl net.ipv6.conf.all.disable_ipv6=0
  26. # we don't want pppd to invoke any actual connection scripts
  27. - mv /etc/ppp /etc/ppp.DISABLED
  28. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  29. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  30. - make VERBOSE=1 XFAIL_TESTS="auth-nonascii ppp-over-tls-sync" -j4 check
  31. tags:
  32. - shared
  33. except:
  34. - tags
  35. - schedules
  36. artifacts:
  37. expire_in: 1 week
  38. when: on_failure
  39. paths:
  40. - tests/*.log
  41. CentOS7/OpenSSL:
  42. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD
  43. script:
  44. - ./autogen.sh
  45. # For reasons that are not clear, OpenConnect fails to handshake a TLS connection to Python 3.6+Flask
  46. # (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135245618#L520), so we disable the
  47. # Flask-based authentication tests.
  48. - ./configure --without-gnutls --with-openssl --with-java --without-openssl-version-check --enable-dtls-xfail --disable-dsa-tests --enable-ppp-tests --disable-flask-tests CFLAGS=-g
  49. - make -j4
  50. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  51. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  52. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  53. - sysctl net.ipv6.conf.all.disable_ipv6=0
  54. # we don't want pppd to invoke any actual connection scripts
  55. - mv /etc/ppp /etc/ppp.DISABLED
  56. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  57. # dtls-psk: communication with ocserv fails for undetermined reasons marking as xfail until issue is identified
  58. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  59. - make VERBOSE=1 XFAIL_TESTS="auth-nonascii dtls-psk ppp-over-tls-sync" -j4 check
  60. tags:
  61. - shared
  62. except:
  63. - tags
  64. - schedules
  65. artifacts:
  66. expire_in: 1 week
  67. when: on_failure
  68. paths:
  69. - tests/*.log
  70. CentOS8/GnuTLS:
  71. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS8_BUILD
  72. script:
  73. - ./autogen.sh
  74. - ./configure --with-java --without-gnutls-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  75. - make -j4
  76. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  77. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  78. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  79. - sysctl net.ipv6.conf.all.disable_ipv6=0
  80. # we don't want pppd to invoke any actual connection scripts
  81. - mv /etc/ppp /etc/ppp.DISABLED
  82. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  83. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  84. - make VERBOSE=1 XFAIL_TESTS="auth-nonascii ppp-over-tls-sync" -j4 check
  85. tags:
  86. - shared
  87. except:
  88. - tags
  89. - schedules
  90. artifacts:
  91. expire_in: 1 week
  92. when: on_failure
  93. paths:
  94. - tests/*.log
  95. CentOS8/OpenSSL:
  96. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS8_BUILD
  97. script:
  98. - ./autogen.sh
  99. - ./configure --without-gnutls --with-openssl --with-java --without-openssl-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  100. - make -j4
  101. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  102. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  103. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  104. - sysctl net.ipv6.conf.all.disable_ipv6=0
  105. # we don't want pppd to invoke any actual connection scripts
  106. - mv /etc/ppp /etc/ppp.DISABLED
  107. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  108. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  109. - make VERBOSE=1 XFAIL_TESTS="auth-nonascii ppp-over-tls-sync" -j4 check
  110. tags:
  111. - shared
  112. except:
  113. - tags
  114. - schedules
  115. artifacts:
  116. expire_in: 1 week
  117. when: on_failure
  118. paths:
  119. - tests/*.log
  120. Signoff:
  121. script:
  122. # Quoted to work around https://gitlab.com/gitlab-org/gitlab-foss/-/issues/20177
  123. - 'echo "Checking for new commits without Signed-off-by: tags as described in https://www.infradead.org/openconnect/contribute.html"'
  124. # Last bad commit
  125. - 'git log ceab1765db11c15a18a0c605812dbc11afd63e8b.. --grep "(^Signed-off-by)|(^Merge branch)|(^This reverts commit)" --extended-regexp --invert-grep --exit-code'
  126. - echo "None (good)"
  127. Coverity:
  128. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS8_BUILD
  129. only:
  130. - schedules
  131. - coverity
  132. script:
  133. - curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64
  134. --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN
  135. - tar xfz /tmp/cov-analysis-linux64.tgz
  136. - ./autogen.sh
  137. - ./configure --with-java --without-gnutls --with-openssl --disable-dsa-tests
  138. - cd java
  139. - ../cov-analysis-linux64-*/bin/cov-build --dir ../cov-int ant
  140. - cd ..
  141. - cov-analysis-linux64-*/bin/cov-build --dir cov-int make -j4
  142. - make clean
  143. - ./configure --with-java --disable-dsa-tests --without-gnutls-version-check
  144. - cov-analysis-linux64-*/bin/cov-build --dir cov-int make -j4
  145. - tar cfz cov-int.tar.gz cov-int
  146. - curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
  147. --form token=$COVERITY_SCAN_TOKEN --form email=email=$GITLAB_USER_EMAIL
  148. --form file=@cov-int.tar.gz --form version="`git describe --tags`"
  149. --form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID "
  150. tags:
  151. - shared
  152. artifacts:
  153. expire_in: 1 week
  154. when: on_failure
  155. paths:
  156. - cov-int/*.txt
  157. ubsan/GnuTLS/Fedora:
  158. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
  159. script:
  160. - ./autogen.sh
  161. - export UBCFLAGS="-Wall -Wextra -fsanitize=undefined -fsanitize=bool -fsanitize=alignment -fsanitize=null -fsanitize=bounds-strict -fsanitize=enum -fno-sanitize-recover -g -O2"
  162. - CFLAGS="$UBCFLAGS" ./configure --with-java --disable-dsa-tests --without-gnutls-version-check
  163. - make -j4
  164. # obsolete-server-crypto: system-wide crypto policy prevents --allow-insecure-crypto from working, and the
  165. # library-reinitialization hack does not reliably work (https://gitlab.com/openconnect/openconnect/-/issues/243#note_576194663)
  166. # XFAIL until we get a solution for https://bugzilla.redhat.com/show_bug.cgi?id=1960763
  167. - make VERBOSE=1 XFAIL_TESTS="obsolete-server-crypto" -j4 check
  168. tags:
  169. - shared
  170. - linux
  171. except:
  172. - tags
  173. - schedules
  174. artifacts:
  175. expire_in: 1 week
  176. when: on_failure
  177. paths:
  178. - ./*.log
  179. - tests/*.log
  180. ubsan/OpenSSL/Fedora:
  181. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
  182. script:
  183. - ./autogen.sh
  184. - export UBCFLAGS="-Wall -Wextra -fsanitize=undefined -fsanitize=bool -fsanitize=alignment -fsanitize=null -fsanitize=bounds-strict -fsanitize=enum -fno-sanitize-recover -g -O2"
  185. - CFLAGS="$UBCFLAGS" ./configure --without-gnutls --with-openssl --without-openssl-version-check --disable-dsa-tests
  186. - make -j4
  187. # auth-swtpm: XFAIL until we understand the TPM error
  188. - make VERBOSE=1 XFAIL_TESTS="auth-swtpm" -j4 check
  189. tags:
  190. - shared
  191. - linux
  192. except:
  193. - tags
  194. - schedules
  195. artifacts:
  196. expire_in: 1 week
  197. when: on_failure
  198. paths:
  199. - ./*.log
  200. - tests/*.log
  201. asan/GnuTLS/Fedora:
  202. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
  203. only:
  204. - asan
  205. script:
  206. - ./autogen.sh
  207. - CC=clang CFLAGS="-fsanitize=address -fno-optimize-sibling-calls -fno-omit-frame-pointer -g -O1"
  208. ./configure --with-java --disable-dsa-tests --without-gnutls-version-check --without-asan-broken-tests
  209. - make -j4
  210. - make VERBOSE=1 -j4 check
  211. tags:
  212. - shared
  213. - linux
  214. except:
  215. - tags
  216. - schedules
  217. artifacts:
  218. expire_in: 1 week
  219. when: on_failure
  220. paths:
  221. - ./*.log
  222. - tests/*.log
  223. asan/OpenSSL/Fedora:
  224. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
  225. only:
  226. - asan
  227. script:
  228. - ./autogen.sh
  229. - CC=clang CFLAGS="-fsanitize=address -fno-optimize-sibling-calls -fno-omit-frame-pointer -g -O1"
  230. ./configure --without-gnutls --with-openssl --without-openssl-version-check --disable-dsa-tests --without-asan-broken-tests
  231. - make -j4
  232. - make VERBOSE=1 -j4 check
  233. tags:
  234. - shared
  235. - linux
  236. except:
  237. - tags
  238. - schedules
  239. artifacts:
  240. expire_in: 1 week
  241. when: on_failure
  242. paths:
  243. - ./*.log
  244. - tests/*.log
  245. Fedora/GnuTLS:
  246. script:
  247. - ./autogen.sh
  248. - ./configure --with-java --disable-dsa-tests --without-gnutls-version-check --enable-ppp-tests CFLAGS=-g
  249. - make tmp-distdir
  250. - mkdir build
  251. - cd build
  252. - TMPDISTDIR=../openconnect-$(git describe --tags | sed s/^v//)
  253. - ${TMPDISTDIR}/configure --with-java --disable-dsa-tests --without-gnutls-version-check --enable-ppp-tests CFLAGS=-g
  254. - make -j4
  255. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  256. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  257. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  258. - sysctl net.ipv6.conf.all.disable_ipv6=0
  259. # we don't want pppd to invoke any actual connection scripts
  260. - mv /etc/ppp /etc/ppp.DISABLED
  261. # obsolete-server-crypto: system-wide crypto policy prevents --allow-insecure-crypto from working, and the
  262. # library-reinitialization hack does not reliably work (https://gitlab.com/openconnect/openconnect/-/issues/243#note_576194663)
  263. # XFAIL until we get a solution for https://bugzilla.redhat.com/show_bug.cgi?id=1960763
  264. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  265. - make VERBOSE=1 XFAIL_TESTS="obsolete-server-crypto ppp-over-tls-sync" -j4 check
  266. tags:
  267. - shared
  268. except:
  269. - tags
  270. - schedules
  271. artifacts:
  272. expire_in: 1 week
  273. when: on_failure
  274. paths:
  275. - build/tests/*.log
  276. Fedora/GnuTLS/ibmtss:
  277. script:
  278. - ./autogen.sh
  279. - ./configure --with-java --disable-dsa-tests --without-gnutls-version-check --enable-ppp-tests CFLAGS=-g
  280. - make tmp-distdir
  281. - mkdir build
  282. - cd build
  283. - TMPDISTDIR=../openconnect-$(git describe --tags | sed s/^v//)
  284. - ${TMPDISTDIR}/configure --with-java --disable-dsa-tests --without-gnutls-version-check --enable-ppp-tests --with-gnutls-tss2=ibmtss CFLAGS=-g
  285. - make -j4
  286. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  287. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  288. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  289. - sysctl net.ipv6.conf.all.disable_ipv6=0
  290. # we don't want pppd to invoke any actual connection scripts
  291. - mv /etc/ppp /etc/ppp.DISABLED
  292. # obsolete-server-crypto: system-wide crypto policy prevents --allow-insecure-crypto from working, and the
  293. # library-reinitialization hack does not reliably work (https://gitlab.com/openconnect/openconnect/-/issues/243#note_576194663)
  294. # XFAIL until we get a solution for https://bugzilla.redhat.com/show_bug.cgi?id=1960763
  295. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  296. - make VERBOSE=1 XFAIL_TESTS="obsolete-server-crypto ppp-over-tls-sync" -j4 check
  297. tags:
  298. - shared
  299. except:
  300. - tags
  301. - schedules
  302. artifacts:
  303. expire_in: 1 week
  304. when: on_failure
  305. paths:
  306. - build/tests/*.log
  307. Fedora/GnuTLS/clang:
  308. script:
  309. - ./autogen.sh
  310. - ./configure --with-java --disable-dsa-tests --without-gnutls-version-check CC=clang --enable-ppp-tests CFLAGS=-g
  311. - make tmp-distdir
  312. - mkdir build
  313. - cd build
  314. - TMPDISTDIR=../openconnect-$(git describe --tags | sed s/^v//)
  315. - ${TMPDISTDIR}/configure --with-java --disable-dsa-tests --without-gnutls-version-check CC=clang --enable-ppp-tests CFLAGS=-g
  316. - make -j4
  317. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  318. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  319. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  320. - sysctl net.ipv6.conf.all.disable_ipv6=0
  321. # we don't want pppd to invoke any actual connection scripts
  322. - mv /etc/ppp /etc/ppp.DISABLED
  323. # obsolete-server-crypto: system-wide crypto policy prevents --allow-insecure-crypto from working, and the
  324. # library-reinitialization hack does not reliably work (https://gitlab.com/openconnect/openconnect/-/issues/243#note_576194663)
  325. # XFAIL until we get a solution for https://bugzilla.redhat.com/show_bug.cgi?id=1960763
  326. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  327. - make VERBOSE=1 XFAIL_TESTS="obsolete-server-crypto ppp-over-tls-sync" -j4 check
  328. tags:
  329. - shared
  330. except:
  331. - tags
  332. - schedules
  333. artifacts:
  334. expire_in: 1 week
  335. when: on_failure
  336. paths:
  337. - build/tests/*.log
  338. Fedora/OpenSSL:
  339. script:
  340. # Re-enable DSA since we test it
  341. - update-crypto-policies --set LEGACY
  342. - ./autogen.sh
  343. - ./configure --without-gnutls --with-openssl --without-openssl-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  344. - make tmp-distdir
  345. - mkdir build
  346. - cd build
  347. - TMPDISTDIR=../openconnect-$(git describe --tags | sed s/^v//)
  348. - ${TMPDISTDIR}/configure --without-gnutls --with-openssl --without-openssl-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  349. - make -j4
  350. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  351. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  352. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  353. - sysctl net.ipv6.conf.all.disable_ipv6=0
  354. # we don't want pppd to invoke any actual connection scripts
  355. - mv /etc/ppp /etc/ppp.DISABLED
  356. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  357. # auth-swtpm: XFAIL until we understand the TPM error
  358. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  359. - make VERBOSE=1 XFAIL_TESTS="auth-swtpm ppp-over-tls-sync" -j4 check
  360. tags:
  361. - shared
  362. except:
  363. - tags
  364. - schedules
  365. artifacts:
  366. expire_in: 1 week
  367. when: on_failure
  368. paths:
  369. - build/tests/*.log
  370. Fedora/OpenSSL/clang:
  371. script:
  372. # Re-enable DSA since we test it
  373. - update-crypto-policies --set LEGACY
  374. - ./autogen.sh
  375. - ./configure CC=clang --without-gnutls --with-openssl --without-openssl-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  376. - make tmp-distdir
  377. - mkdir build
  378. - cd build
  379. - TMPDISTDIR=../openconnect-$(git describe --tags | sed s/^v//)
  380. - ${TMPDISTDIR}/configure CC=clang --without-gnutls --with-openssl --without-openssl-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  381. - make -j4
  382. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  383. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  384. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  385. - sysctl net.ipv6.conf.all.disable_ipv6=0
  386. # we don't want pppd to invoke any actual connection scripts
  387. - mv /etc/ppp /etc/ppp.DISABLED
  388. # auth-swtpm: XFAIL until we understand the TPM error
  389. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  390. - make VERBOSE=1 XFAIL_TESTS="auth-swtpm ppp-over-tls-sync" -j4 check
  391. tags:
  392. - shared
  393. except:
  394. - tags
  395. - schedules
  396. artifacts:
  397. expire_in: 1 week
  398. when: on_failure
  399. paths:
  400. - build/tests/*.log
  401. Ubuntu18.04/GnuTLS:
  402. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$UBUNTU_BUILD
  403. script:
  404. - ./autogen.sh
  405. - ./configure --with-java --enable-ppp-tests CFLAGS=-g
  406. - make -j4
  407. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  408. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  409. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  410. - sysctl net.ipv6.conf.all.disable_ipv6=0
  411. # we don't want pppd to invoke any actual connection scripts
  412. - mv /etc/ppp /etc/ppp.DISABLED
  413. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  414. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  415. - make VERBOSE=1 XFAIL_TESTS="auth-nonascii ppp-over-tls-sync" -j4 check
  416. tags:
  417. - shared
  418. except:
  419. - tags
  420. - schedules
  421. artifacts:
  422. expire_in: 1 week
  423. paths:
  424. - tests/*.log
  425. Ubuntu18.04/OpenSSL:
  426. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$UBUNTU_BUILD
  427. script:
  428. - ./autogen.sh
  429. - ./configure --without-gnutls --with-openssl --with-java --without-openssl-version-check --disable-dsa-tests --enable-ppp-tests CFLAGS=-g
  430. - make -j4
  431. # For reasons that are unclear, but probably also unimportant, IPv6 is disabled by default on this CI
  432. # image (verified in https://gitlab.com/openconnect/openconnect/-/jobs/1135199323#L335), and this will
  433. # cause PPP tests using IPv6 to fail. So we must explicitly enable IPv6:
  434. - sysctl net.ipv6.conf.all.disable_ipv6=0
  435. # we don't want pppd to invoke any actual connection scripts
  436. - mv /etc/ppp /etc/ppp.DISABLED
  437. # auth-nonascii: UTF-8 support is not available in distro's ocserv package
  438. # obsolete-server-crypto: OpenSSL 1.1.0 disables 3DES and RC4 by default (https://www.openssl.org/blog/blog/2016/08/24/sweet32/)
  439. # ppp-over-tls-sync: https://gitlab.com/openconnect/openconnect/-/issues/287#note_641198529)
  440. - make VERBOSE=1 XFAIL_TESTS="auth-nonascii obsolete-server-crypto ppp-over-tls-sync" -j4 check
  441. tags:
  442. - shared
  443. except:
  444. - tags
  445. - schedules
  446. artifacts:
  447. expire_in: 1 week
  448. when: on_failure
  449. paths:
  450. - tests/*.log
  451. MinGW32/GnuTLS:
  452. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW32_BUILD
  453. script:
  454. - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
  455. - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
  456. - ./autogen.sh
  457. - mingw32-configure --without-gnutls-version-check CFLAGS=-g
  458. - make -j4
  459. # These tests seem to fail due to wine failing to start; setting as XFAIL
  460. # since these never run before this patch set.
  461. - make VERBOSE=1 -j4 check XFAIL_TESTS="sigterm dtls-psk"
  462. tags:
  463. - shared
  464. except:
  465. - tags
  466. - schedules
  467. artifacts:
  468. expire_in: 1 week
  469. when: always
  470. paths:
  471. - tests/*.log
  472. - openconnect-installer.exe
  473. MinGW32/OpenSSL:
  474. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW32_BUILD
  475. script:
  476. - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
  477. - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
  478. - ./autogen.sh
  479. - mingw32-configure --without-gnutls --with-openssl --without-openssl-version-check CFLAGS=-g
  480. - make -j4
  481. # These tests seem to fail due to wine failing to start; setting as XFAIL
  482. # since these never run before this patch set.
  483. - make VERBOSE=1 -j4 check XFAIL_TESTS="sigterm dtls-psk"
  484. tags:
  485. - shared
  486. except:
  487. - tags
  488. - schedules
  489. artifacts:
  490. expire_in: 1 week
  491. when: always
  492. paths:
  493. - tests/*.log
  494. - openconnect-installer.exe
  495. MinGW64/GnuTLS:
  496. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW64_BUILD
  497. script:
  498. - dnf remove -y wine.i686
  499. - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
  500. - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
  501. - ./autogen.sh
  502. - mingw64-configure --without-gnutls-version-check CFLAGS=-g
  503. - make -j4
  504. # These tests seem to fail due to wine failing to start; setting as XFAIL
  505. # since these never run before this patch set.
  506. - make VERBOSE=1 -j4 check XFAIL_TESTS="sigterm dtls-psk"
  507. tags:
  508. - shared
  509. except:
  510. - tags
  511. - schedules
  512. artifacts:
  513. expire_in: 1 week
  514. when: always
  515. paths:
  516. - tests/*.log
  517. - openconnect-installer.exe
  518. MinGW64/OpenSSL:
  519. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW64_BUILD
  520. script:
  521. - dnf remove -y wine.i686
  522. - mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
  523. - echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
  524. - ./autogen.sh
  525. - mingw64-configure --without-gnutls --with-openssl --without-openssl-version-check CFLAGS=-g
  526. - make -j4
  527. # These tests seem to fail due to wine failing to start; setting as XFAIL
  528. # since these never run before this patch set.
  529. - make VERBOSE=1 -j4 check XFAIL_TESTS="sigterm dtls-psk"
  530. tags:
  531. - shared
  532. except:
  533. - tags
  534. - schedules
  535. artifacts:
  536. expire_in: 1 week
  537. when: always
  538. paths:
  539. - tests/*.log
  540. - openconnect-installer.exe
  541. Android/x86_64:
  542. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$ANDROID_BUILD
  543. script:
  544. tags:
  545. - shared
  546. script:
  547. - make -C android ARCH=x86_64 TOOLCHAIN=$ANDROID_TOOLCHAINDIR/'$(TRIPLET)-$(API_LEVEL)'
  548. artifacts:
  549. when: always
  550. paths:
  551. - android/*-linux-android*/out/*
  552. Android/x86:
  553. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$ANDROID_BUILD
  554. script:
  555. tags:
  556. - shared
  557. script:
  558. - make -C android ARCH=x86 TOOLCHAIN=$ANDROID_TOOLCHAINDIR/'$(TRIPLET)-$(API_LEVEL)'
  559. artifacts:
  560. when: always
  561. paths:
  562. - android/*-linux-android*/out/*
  563. Android/arm:
  564. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$ANDROID_BUILD
  565. script:
  566. tags:
  567. - shared
  568. script:
  569. - make -C android ARCH=arm TOOLCHAIN=$ANDROID_TOOLCHAINDIR/'$(TRIPLET)-$(API_LEVEL)'
  570. artifacts:
  571. when: always
  572. paths:
  573. - android/*-linux-android*/out/*
  574. Android/arm64:
  575. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$ANDROID_BUILD
  576. script:
  577. tags:
  578. - shared
  579. script:
  580. - make -C android ARCH=arm64 TOOLCHAIN=$ANDROID_TOOLCHAINDIR/'$(TRIPLET)-$(API_LEVEL)'
  581. artifacts:
  582. when: always
  583. paths:
  584. - android/*-linux-android*/out/*
  585. static-analyzer/GnuTLS/Fedora:
  586. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:buildenv-fedora33
  587. script:
  588. - ./autogen.sh
  589. - scan-build ./configure
  590. - scan-build --status-bugs -o scan-build-src make -j4
  591. tags:
  592. - shared
  593. - linux
  594. except:
  595. - tags
  596. - schedules
  597. artifacts:
  598. expire_in: 1 week
  599. when: always
  600. paths:
  601. - scan-build-src/*
  602. static-analyzer/OpenSSL/Fedora:
  603. image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:buildenv-fedora33
  604. script:
  605. - ./autogen.sh
  606. - scan-build ./configure --without-gnutls --with-openssl --without-openssl-version-check
  607. - scan-build --status-bugs -o scan-build-src make -j4
  608. tags:
  609. - shared
  610. - linux
  611. except:
  612. - tags
  613. - schedules
  614. artifacts:
  615. expire_in: 1 week
  616. when: on_failure
  617. paths:
  618. - scan-build-src/*