main.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. components: audit
  22. - name: cargo-audit
  23. run: pnpm cargo-audit
  24. - name: Filter members
  25. id: filter
  26. run: pnpm tsx ./scripts/setup/members.mts
  27. process:
  28. name: Check
  29. needs: sanity
  30. runs-on: ubuntu-latest
  31. strategy:
  32. matrix:
  33. member: ${{ fromJson(needs.sanity.outputs.members) }}
  34. steps:
  35. - name: Git Checkout
  36. uses: actions/checkout@v4
  37. - name: Setup Environment
  38. uses: ./.github/actions/setup
  39. with:
  40. cargo-cache-key: cargo-${{ matrix.member }}
  41. toolchain: build, format, lint, test
  42. components: hack
  43. solana: true
  44. - name: fmt
  45. run: pnpm format ${{ matrix.member }}
  46. - name: clippy
  47. run: pnpm clippy ${{ matrix.member }}
  48. - name: cargo-doc
  49. run: pnpm doc ${{ matrix.member }}
  50. - name: cargo-hack
  51. run: pnpm hack ${{ matrix.member }}
  52. - name: build-sbf
  53. run: pnpm build-sbf ${{ matrix.member }}
  54. - name: test
  55. run: pnpm test ${{ matrix.member }}