main.yml 2.0 KB

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