main.yml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. on: [push, pull_request]
  2. name: Rust CI
  3. jobs:
  4. check:
  5. name: Check
  6. runs-on: ubuntu-latest
  7. steps:
  8. - uses: actions/checkout@v2
  9. - uses: actions-rs/toolchain@v1
  10. with:
  11. profile: minimal
  12. toolchain: stable
  13. override: true
  14. - uses: Swatinem/rust-cache@v1
  15. - run: sudo apt-get update
  16. - run: sudo apt install libwebkit2gtk-4.0-dev libappindicator3-dev libgtk-3-dev
  17. - uses: actions-rs/cargo@v1
  18. with:
  19. command: check
  20. test:
  21. name: Test Suite
  22. runs-on: ubuntu-latest
  23. steps:
  24. - uses: actions/checkout@v2
  25. - uses: actions-rs/toolchain@v1
  26. with:
  27. profile: minimal
  28. toolchain: stable
  29. override: true
  30. - uses: Swatinem/rust-cache@v1
  31. - run: sudo apt-get update
  32. - run: sudo apt install libwebkit2gtk-4.0-dev libappindicator3-dev libgtk-3-dev
  33. - uses: davidB/rust-cargo-make@v1
  34. - uses: browser-actions/setup-firefox@latest
  35. - uses: jetli/wasm-pack-action@v0.3.0
  36. - uses: actions-rs/cargo@v1
  37. with:
  38. command: make
  39. args: tests
  40. fmt:
  41. name: Rustfmt
  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. override: true
  50. - uses: Swatinem/rust-cache@v1
  51. - run: rustup component add rustfmt
  52. - uses: actions-rs/cargo@v1
  53. with:
  54. command: fmt
  55. args: --all -- --check
  56. clippy:
  57. name: Clippy
  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. - uses: Swatinem/rust-cache@v1
  67. - run: sudo apt-get update
  68. - run: sudo apt install libwebkit2gtk-4.0-dev libappindicator3-dev libgtk-3-dev
  69. - run: rustup component add clippy
  70. - uses: actions-rs/cargo@v1
  71. with:
  72. command: clippy
  73. args: -- -D warnings
  74. coverage:
  75. name: coverage
  76. runs-on: ubuntu-latest
  77. container:
  78. image: xd009642/tarpaulin:develop-nightly
  79. options: --security-opt seccomp=unconfined
  80. steps:
  81. - name: Checkout repository
  82. uses: actions/checkout@v2
  83. - name: Generate code coverage
  84. run: |
  85. apt-get update &&\
  86. apt install libwebkit2gtk-4.0-dev libappindicator3-dev libgtk-3-dev -y &&\
  87. cargo +nightly tarpaulin --verbose --tests --all-features --workspace --timeout 120 --out Xml
  88. - name: Upload to codecov.io
  89. uses: codecov/codecov-action@v2