main.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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.45.0, stable, beta, nightly]
  12. exclude:
  13. - os: macos-latest
  14. rust: 1.45.0
  15. - os: windows-latest
  16. rust: 1.45.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. env:
  38. CARGO_NET_GIT_FETCH_WITH_CLI: true
  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