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.
 
 
 

105 lines
2.6 KiB

  1. name: PQC
  2. on:
  3. - push
  4. - pull_request
  5. jobs:
  6. unit-test:
  7. name: Unit tests
  8. runs-on: [ubuntu-20.04]
  9. env:
  10. CC: ${{ matrix.cc }}
  11. CXX: ${{ matrix.cxx }}
  12. CMAKE_FLAGS: ${{matrix.flags}}
  13. strategy:
  14. fail-fast: false
  15. max-parallel: 4
  16. matrix:
  17. name: [
  18. gcc-release-build,
  19. clang-release-build,
  20. gcc-debug-build,
  21. clang-debug-build,
  22. clang-release-asan-build,
  23. ]
  24. include:
  25. - name: gcc-release-build
  26. cc: gcc
  27. cxx: g++
  28. flags: -DCMAKE_BUILD_TYPE=Release
  29. - name: gcc-debug-build
  30. cc: gcc
  31. cxx: g++
  32. flags: -DCMAKE_BUILD_TYPE=Debug
  33. - name: clang-release-build
  34. cc: clang
  35. cxx: clang++
  36. flags: -DCMAKE_BUILD_TYPE=Release
  37. - name: clang-debug-build
  38. cc: /usr/bin/clang
  39. cxx: /usr/bin/clang++
  40. flags: -DCMAKE_BUILD_TYPE=Debug
  41. - name: clang-release-asan-build
  42. cc: clang
  43. cxx: clang++
  44. flags: -DCMAKE_BUILD_TYPE=Release -DADDRSAN=1
  45. steps:
  46. - uses: actions/checkout@v1
  47. with:
  48. submodules: true
  49. - name: build
  50. run: |
  51. mkdir -p build
  52. cd build
  53. CC=${CC} CXX=${CXX} cmake ${CMAKE_FLAGS} ..
  54. make
  55. - name: run tests
  56. run: |
  57. cd build && ./ut
  58. - name: Build Rust bindings
  59. run: |
  60. cd src/rustapi/pqc-sys && cargo build
  61. KAT:
  62. name: Known Answer Tests
  63. runs-on: [ubuntu-20.04]
  64. steps:
  65. - uses: actions/checkout@v1
  66. with:
  67. submodules: true
  68. - name: build
  69. run: |
  70. mkdir -p build
  71. cd build
  72. CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release ..
  73. make
  74. - name: run tests
  75. run: |
  76. cd build && ./ut
  77. - name: Build Rust bindings
  78. run: |
  79. cd src/rustapi/pqc-sys && cargo build
  80. - name: Run KAT tests
  81. run: |
  82. cd test/katrunner &&
  83. wget http://www.amongbytes.com/files/kat.zip
  84. unzip kat.zip
  85. cargo run --release -- --katdir KAT
  86. MEMSAN:
  87. name: Memory Sanitizer build
  88. runs-on: [ubuntu-20.04]
  89. steps:
  90. - uses: actions/checkout@v1
  91. with:
  92. submodules: true
  93. - name: build
  94. run: |
  95. mkdir -p build
  96. cd build
  97. CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DMEMSAN=1 -DCTSAN=1 ..
  98. make
  99. - name: run tests
  100. run: |
  101. cd build && ./ut