main.yml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. name: Main
  2. on:
  3. push:
  4. branches: [main]
  5. pull_request:
  6. env:
  7. CACHE: true
  8. jobs:
  9. sanity:
  10. name: Process Workspace
  11. runs-on: ubuntu-latest
  12. outputs:
  13. members: ${{ steps.filter.outputs.members }}
  14. steps:
  15. - name: Git checkout
  16. uses: actions/checkout@v4
  17. - name: Setup Environment
  18. uses: ./.github/actions/setup
  19. with:
  20. cargo-cache-key: cargo-audit
  21. toolchain: lint
  22. components: audit, miri
  23. - name: cargo-audit
  24. run: pnpm cargo-audit
  25. - name: cargo-miri
  26. run: pnpm miri
  27. - name: Filter members
  28. id: filter
  29. run: pnpm tsx ./scripts/setup/members.mts
  30. spellcheck:
  31. name: Spellcheck
  32. runs-on: ubuntu-latest
  33. steps:
  34. - name: Git Checkout
  35. uses: actions/checkout@v4
  36. - name: Setup Environment
  37. uses: ./.github/actions/setup
  38. with:
  39. cargo-cache-key: cargo-spellcheck
  40. components: spellcheck
  41. - name: cargo-spellcheck
  42. run: pnpm spellcheck
  43. process:
  44. name: Check
  45. needs: sanity
  46. runs-on: ubuntu-latest
  47. strategy:
  48. matrix:
  49. member: ${{ fromJson(needs.sanity.outputs.members) }}
  50. steps:
  51. - name: Git Checkout
  52. uses: actions/checkout@v4
  53. - name: Setup Environment
  54. uses: ./.github/actions/setup
  55. with:
  56. cargo-cache-key: cargo-${{ matrix.member }}
  57. toolchain: build, format, lint, test
  58. components: hack
  59. solana: true
  60. - name: fmt
  61. run: pnpm format ${{ matrix.member }}
  62. - name: clippy
  63. run: pnpm clippy ${{ matrix.member }}
  64. - name: cargo-doc
  65. run: pnpm doc ${{ matrix.member }}
  66. - name: cargo-hack
  67. run: pnpm hack ${{ matrix.member }}
  68. - name: build-sbf
  69. run: pnpm build-sbf ${{ matrix.member }}
  70. - name: test
  71. run: pnpm test ${{ matrix.member }}