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.

175 lines
4.8 KiB

  1. name: CI
  2. on:
  3. pull_request:
  4. push:
  5. branches:
  6. - master
  7. env:
  8. RUST_BACKTRACE: 1
  9. jobs:
  10. style:
  11. name: Check Style
  12. runs-on: ubuntu-latest
  13. steps:
  14. - name: Checkout
  15. uses: actions/checkout@v1
  16. - name: Install Rust
  17. uses: actions-rs/toolchain@v1
  18. with:
  19. profile: minimal
  20. toolchain: stable
  21. override: true
  22. components: rustfmt
  23. - name: cargo fmt --check
  24. uses: actions-rs/cargo@v1
  25. with:
  26. command: fmt
  27. args: --all -- --check
  28. test:
  29. name: Test
  30. runs-on: ubuntu-latest
  31. env:
  32. RUSTFLAGS: -Dwarnings
  33. strategy:
  34. matrix:
  35. rust:
  36. - stable
  37. - nightly
  38. steps:
  39. - name: Checkout
  40. uses: actions/checkout@v2
  41. - name: Install Rust (${{ matrix.rust }})
  42. uses: actions-rs/toolchain@v1
  43. with:
  44. profile: minimal
  45. toolchain: ${{ matrix.rust }}
  46. override: true
  47. - uses: actions/cache@v2
  48. with:
  49. path: |
  50. ~/.cargo/registry
  51. ~/.cargo/git
  52. target
  53. key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
  54. - name: Check examples
  55. uses: actions-rs/cargo@v1
  56. with:
  57. command: check
  58. args: --examples --all
  59. - name: Check examples with all features on stable
  60. uses: actions-rs/cargo@v1
  61. with:
  62. command: check
  63. args: --examples --all-features --all
  64. if: matrix.rust == 'stable'
  65. - name: Check benchmarks on nightly
  66. uses: actions-rs/cargo@v1
  67. with:
  68. command: check
  69. args: --all-features --examples --all --benches
  70. if: matrix.rust == 'nightly'
  71. - name: Test
  72. uses: actions-rs/cargo@v1
  73. with:
  74. command: test
  75. args: "--all \
  76. --all-features \
  77. --exclude cp-benches \
  78. --exclude algebra-benches \
  79. --exclude ff-fft-benches \
  80. -- --skip dpc --skip integration_test"
  81. check_no_std:
  82. name: Check no_std
  83. runs-on: ubuntu-latest
  84. steps:
  85. - name: Checkout
  86. uses: actions/checkout@v2
  87. - name: Install Rust (${{ matrix.rust }})
  88. uses: actions-rs/toolchain@v1
  89. with:
  90. toolchain: stable
  91. target: thumbv6m-none-eabi
  92. override: true
  93. - name: Install Rust ARM64 (${{ matrix.rust }})
  94. uses: actions-rs/toolchain@v1
  95. with:
  96. toolchain: stable
  97. target: aarch64-unknown-none
  98. override: true
  99. - uses: actions/cache@v2
  100. with:
  101. path: |
  102. ~/.cargo/registry
  103. ~/.cargo/git
  104. target
  105. key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
  106. - name: algebra-core
  107. run: |
  108. cd algebra-core
  109. cargo build -p algebra-core --no-default-features --target thumbv6m-none-eabi
  110. cargo check --examples -p algebra-core --no-default-features --target thumbv6m-none-eabi
  111. cd ..
  112. - name: algebra
  113. run: |
  114. cd algebra
  115. cargo build -p algebra --no-default-features --target thumbv6m-none-eabi
  116. cargo check --examples -p algebra --no-default-features --target thumbv6m-none-eabi
  117. cd ..
  118. - name: r1cs-core
  119. run: |
  120. cd r1cs-core
  121. cargo build -p r1cs-core --no-default-features --target thumbv6m-none-eabi
  122. cargo check --examples -p r1cs-core --no-default-features --target thumbv6m-none-eabi
  123. cd ..
  124. - name: r1cs-std
  125. run: |
  126. cd r1cs-std
  127. cargo build -p r1cs-std --no-default-features --target aarch64-unknown-none
  128. cargo check --examples -p r1cs-std --no-default-features --target aarch64-unknown-none
  129. cd ..
  130. - name: ff-fft
  131. run: |
  132. cd ff-fft
  133. cargo build -p ff-fft --no-default-features --target thumbv6m-none-eabi
  134. cargo check --examples -p ff-fft --no-default-features --target thumbv6m-none-eabi
  135. cd ..
  136. - name: groth16
  137. run: |
  138. cd groth16
  139. cargo build -p groth16 --no-default-features --target thumbv6m-none-eabi
  140. cargo check --examples -p groth16 --no-default-features --target thumbv6m-none-eabi
  141. cd ..
  142. - name: gm17
  143. run: |
  144. cd gm17
  145. cargo build -p gm17 --no-default-features --target thumbv6m-none-eabi
  146. cargo check --examples -p gm17 --no-default-features --target thumbv6m-none-eabi
  147. cd ..
  148. - name: crypto-primitives
  149. run: |
  150. cd crypto-primitives
  151. cargo build -p crypto-primitives --no-default-features --target aarch64-unknown-none
  152. cargo check --examples -p crypto-primitives --no-default-features --target aarch64-unknown-none
  153. cd ..