main.yml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. name: CI
  2. on:
  3. push:
  4. branches: ['master']
  5. pull_request:
  6. jobs:
  7. Test:
  8. strategy:
  9. matrix:
  10. os: [ubuntu-latest, macos-latest, windows-latest]
  11. rust: [1.36.0, stable, beta, nightly]
  12. exclude:
  13. - os: macos-latest
  14. rust: 1.36.0
  15. - os: windows-latest
  16. rust: 1.36.0
  17. - os: macos-latest
  18. rust: beta
  19. - os: windows-latest
  20. rust: beta
  21. - os: macos-latest
  22. rust: nightly
  23. - os: windows-latest
  24. rust: nightly
  25. runs-on: ${{ matrix.os }}
  26. steps:
  27. - uses: actions/checkout@v2
  28. - uses: actions-rs/toolchain@v1
  29. with:
  30. profile: minimal
  31. toolchain: ${{ matrix.rust }}
  32. override: true
  33. - uses: actions-rs/cargo@v1
  34. with:
  35. command: build
  36. args: --all-targets
  37. - uses: actions-rs/cargo@v1
  38. with:
  39. command: test
  40. args: --all-features
  41. WASM:
  42. runs-on: ubuntu-latest
  43. steps:
  44. - uses: actions/checkout@v2
  45. - uses: actions-rs/toolchain@v1
  46. with:
  47. profile: minimal
  48. toolchain: stable
  49. target: wasm32-unknown-unknown
  50. override: true
  51. - uses: actions-rs/cargo@v1
  52. with:
  53. command: build
  54. args: --target wasm32-unknown-unknown
  55. Lint:
  56. runs-on: ubuntu-latest
  57. steps:
  58. - uses: actions/checkout@v2
  59. - uses: actions-rs/toolchain@v1
  60. with:
  61. profile: minimal
  62. toolchain: stable
  63. override: true
  64. components: rustfmt, clippy
  65. - uses: actions-rs/cargo@v1
  66. with:
  67. command: fmt
  68. args: --all -- --check
  69. - uses: actions-rs/cargo@v1
  70. if: always()
  71. with:
  72. command: clippy
  73. args: --workspace --all-targets -- -D warnings
  74. Audit:
  75. runs-on: ubuntu-latest
  76. steps:
  77. - uses: actions/checkout@v1
  78. - uses: EmbarkStudios/cargo-deny-action@v1