You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

212 lines
6.3 KiB

  1. version: 2.1
  2. .emulated_job: &defaultjob
  3. machine: true
  4. steps:
  5. - checkout
  6. - run: &checkouttask
  7. name: Pull submodules
  8. command: |
  9. git submodule init
  10. git submodule update
  11. git checkout $CIRCLECI_BRANCH
  12. git reset --hard $CIRCLECI_SHA1
  13. - run:
  14. name: Install the emulation handlers
  15. command: docker run --rm --privileged multiarch/qemu-user-static:register --reset
  16. - run:
  17. name: Run the tests in a container
  18. command: |
  19. docker run -e CI=true -e PQCLEAN_ONLY_DIFF=1 -e PQCLEAN_SKIP_SCHEMES=sphincs-haraka-128f-robust,sphincs-haraka-192s-robust,sphincs-sha256-128f-robust,sphincs-sha256-192s-robust,sphincs-shake256-128f-robust,sphincs-shake256-192s-robust,sphincs-haraka-128f-simple,sphincs-haraka-192s-simple,sphincs-sha256-128f-simple,sphincs-sha256-192s-simple,sphincs-shake256-128f-simple,sphincs-shake256-192s-simple,sphincs-haraka-128s-robust,sphincs-haraka-256f-robust,sphincs-sha256-128s-robust,sphincs-sha256-256f-robust,sphincs-shake256-128s-robust,sphincs-shake256-256f-robust,sphincs-haraka-128s-simple,sphincs-haraka-256f-simple,sphincs-sha256-128s-simple,sphincs-sha256-256f-simple,sphincs-shake256-128s-simple,sphincs-shake256-256f-simple,sphincs-haraka-192f-robust,sphincs-haraka-256s-robust,sphincs-sha256-192f-robust,sphincs-sha256-256s-robust,sphincs-shake256-192f-robust,sphincs-shake256-256s-robust,sphincs-haraka-192f-simple,sphincs-haraka-256s-simple,sphincs-sha256-192f-simple,sphincs-sha256-256s-simple,sphincs-shake256-192f-simple,sphincs-shake256-256s-simple --rm -v `pwd`:`pwd` -w `pwd` "pqclean/ci-container:$ARCH" /bin/bash -c "
  20. uname -a &&
  21. export CC=${CC} &&
  22. pip3 install -r requirements.txt &&
  23. mkdir test-results &&
  24. cd test && python3 -m nose --rednose --verbose --with-xunit --xunit-file=../test-results/nosetests.xml"
  25. - store_test_results:
  26. path: test-results
  27. .native_job: &nativejob
  28. docker:
  29. - image: pqclean/ci-container:$ARCH
  30. steps:
  31. - checkout
  32. - run:
  33. <<: *checkouttask
  34. - run:
  35. name: Run tests
  36. command: |
  37. export CC=${CC}
  38. export PQCLEAN_ONLY_DIFF=1
  39. export PQCLEAN_SKIP_SCHEMES=sphincs-haraka-128f-robust,sphincs-haraka-192s-robust,sphincs-sha256-128f-robust,sphincs-sha256-192s-robust,sphincs-shake256-128f-robust,sphincs-shake256-192s-robust,sphincs-haraka-128f-simple,sphincs-haraka-192s-simple,sphincs-sha256-128f-simple,sphincs-sha256-192s-simple,sphincs-shake256-128f-simple,sphincs-shake256-192s-simple,sphincs-haraka-128s-robust,sphincs-haraka-256f-robust,sphincs-sha256-128s-robust,sphincs-sha256-256f-robust,sphincs-shake256-128s-robust,sphincs-shake256-256f-robust,sphincs-haraka-128s-simple,sphincs-haraka-256f-simple,sphincs-sha256-128s-simple,sphincs-sha256-256f-simple,sphincs-shake256-128s-simple,sphincs-shake256-256f-simple,sphincs-haraka-192f-robust,sphincs-haraka-256s-robust,sphincs-sha256-192f-robust,sphincs-sha256-256s-robust,sphincs-shake256-192f-robust,sphincs-shake256-256s-robust,sphincs-haraka-192f-simple,sphincs-haraka-256s-simple,sphincs-sha256-192f-simple,sphincs-sha256-256s-simple,sphincs-shake256-192f-simple,sphincs-shake256-256s-simple
  40. pip3 install -r requirements.txt
  41. mkdir test-results
  42. cd test
  43. python3 -m nose --rednose --verbose --with-xunit --xunit-file=../test-results/nosetests.xml
  44. - store_test_results:
  45. path: test-results
  46. jobs:
  47. arm64-gcc:
  48. <<: *defaultjob
  49. environment:
  50. CC: gcc
  51. ARCH: arm64
  52. arm64-clang:
  53. <<: *defaultjob
  54. environment:
  55. CC: clang
  56. ARCH: arm64
  57. arm32-gcc:
  58. <<: *defaultjob
  59. environment:
  60. CC: gcc
  61. ARCH: armhf
  62. arm32-clang:
  63. <<: *defaultjob
  64. environment:
  65. CC: clang
  66. ARCH: armhf
  67. ppc-clang:
  68. <<: *defaultjob
  69. environment:
  70. CC: clang
  71. ARCH: unstable-ppc
  72. ppc-gcc:
  73. <<: *defaultjob
  74. environment:
  75. CC: gcc
  76. ARCH: unstable-ppc
  77. amd64-gcc:
  78. <<: *nativejob
  79. environment:
  80. CC: gcc
  81. ARCH: amd64
  82. amd64-clang:
  83. <<: *nativejob
  84. environment:
  85. CC: gcc
  86. ARCH: amd64
  87. i386-gcc:
  88. <<: *nativejob
  89. environment:
  90. CC: gcc
  91. ARCH: i386
  92. i386-clang:
  93. <<: *nativejob
  94. environment:
  95. CC: gcc
  96. ARCH: i386
  97. # These are for the scheduled builds
  98. arm64-gcc-slow:
  99. <<: *defaultjob
  100. environment:
  101. CC: gcc
  102. ARCH: arm64
  103. RUN_SLOW: 1
  104. arm64-clang-slow:
  105. <<: *defaultjob
  106. environment:
  107. CC: clang
  108. ARCH: arm64
  109. RUN_SLOW: 1
  110. arm32-gcc-slow:
  111. <<: *defaultjob
  112. environment:
  113. CC: gcc
  114. ARCH: armhf
  115. RUN_SLOW: 1
  116. arm32-clang-slow:
  117. <<: *defaultjob
  118. environment:
  119. CC: clang
  120. ARCH: armhf
  121. RUN_SLOW: 1
  122. ppc-clang-slow:
  123. <<: *defaultjob
  124. environment:
  125. CC: clang
  126. ARCH: unstable-ppc
  127. RUN_SLOW: 1
  128. ppc-gcc-slow:
  129. <<: *defaultjob
  130. environment:
  131. CC: gcc
  132. ARCH: unstable-ppc
  133. RUN_SLOW: 1
  134. amd64-gcc-slow:
  135. <<: *nativejob
  136. environment:
  137. CC: gcc
  138. ARCH: amd64
  139. RUN_SLOW: 1
  140. amd64-clang-slow:
  141. <<: *nativejob
  142. environment:
  143. CC: gcc
  144. ARCH: amd64
  145. RUN_SLOW: 1
  146. i386-gcc-slow:
  147. <<: *nativejob
  148. environment:
  149. CC: gcc
  150. ARCH: i386
  151. RUN_SLOW: 1
  152. i386-clang-slow:
  153. <<: *nativejob
  154. environment:
  155. CC: gcc
  156. ARCH: i386
  157. RUN_SLOW: 1
  158. workflows:
  159. version: 2
  160. build:
  161. jobs:
  162. - arm64-gcc:
  163. requires:
  164. - amd64-gcc
  165. - arm64-clang:
  166. requires:
  167. - amd64-clang
  168. - arm32-gcc:
  169. requires:
  170. - i386-gcc
  171. - arm32-clang:
  172. requires:
  173. - i386-clang
  174. - ppc-gcc:
  175. requires:
  176. - arm32-gcc
  177. - ppc-clang:
  178. requires:
  179. - arm32-clang
  180. - amd64-gcc
  181. - amd64-clang
  182. - i386-gcc
  183. - i386-clang
  184. scheduled:
  185. triggers:
  186. - schedule:
  187. cron: "0 5 * * *"
  188. filters:
  189. branches:
  190. only: master
  191. jobs:
  192. - arm64-gcc-slow
  193. - arm64-gcc-slow
  194. - arm64-clang-slow
  195. - arm32-gcc-slow
  196. - arm32-clang-slow
  197. - ppc-gcc-slow
  198. - ppc-clang-slow
  199. - amd64-gcc-slow
  200. - amd64-clang-slow
  201. - i386-gcc-slow
  202. - i386-clang-slow
  203. # vim: set ft=yaml ts=2 sw=2 tw=0 et :
  204. # vim: set ft=yaml ts=2 sw=2 tw=0 et :