main.yml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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@v1
  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. WASM:
  41. runs-on: ubuntu-latest
  42. steps:
  43. - uses: actions/checkout@v1
  44. - uses: actions-rs/toolchain@v1
  45. with:
  46. profile: minimal
  47. toolchain: stable
  48. target: wasm32-unknown-unknown
  49. override: true
  50. - uses: actions-rs/cargo@v1
  51. with:
  52. command: build
  53. args: --target wasm32-unknown-unknown
  54. Lint:
  55. runs-on: ubuntu-latest
  56. steps:
  57. - uses: actions/checkout@v1
  58. - uses: actions-rs/toolchain@v1
  59. with:
  60. profile: minimal
  61. toolchain: stable
  62. override: true
  63. components: rustfmt, clippy
  64. - uses: actions-rs/cargo@v1
  65. with:
  66. command: fmt
  67. args: --all -- --check
  68. - uses: actions-rs/cargo@v1
  69. if: always()
  70. with:
  71. command: clippy
  72. args: --workspace --all-targets -- -D warnings
  73. Audit:
  74. runs-on: ubuntu-latest
  75. steps:
  76. - uses: actions/checkout@v1
  77. - uses: EmbarkStudios/cargo-deny-action@v0