ci-lazer-rust.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. name: "Lazer Rust Test Suite"
  2. on:
  3. push:
  4. branches:
  5. - main
  6. pull_request:
  7. paths:
  8. - .github/workflows/ci-lazer-rust.yml
  9. - lazer/**
  10. jobs:
  11. lazer-rust-test-suite:
  12. name: Lazer Rust Test Suite
  13. runs-on: ubuntu-22.04
  14. defaults:
  15. run:
  16. working-directory: lazer
  17. steps:
  18. - uses: actions/checkout@v4
  19. with:
  20. submodules: recursive
  21. - uses: actions-rust-lang/setup-rust-toolchain@v1
  22. with:
  23. toolchain: 1.81.0
  24. - uses: Swatinem/rust-cache@v2
  25. with:
  26. workspaces: "lazer -> target"
  27. - name: Install Foundry
  28. uses: foundry-rs/foundry-toolchain@v1
  29. - name: install extra tools
  30. run: |
  31. cargo install --locked taplo-cli@0.9.3
  32. sudo apt-get install -y protobuf-compiler
  33. - name: Install Solana Cli
  34. run: |
  35. sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
  36. echo "$HOME/.local/share/solana/install/active_release/bin" >> "$GITHUB_PATH"
  37. - name: check Cargo.toml formatting
  38. run: find . -name Cargo.toml -exec taplo fmt --check --diff {} \;
  39. - name: Format check
  40. run: cargo fmt --all -- --check
  41. if: success() || failure()
  42. - name: Clippy check
  43. run: cargo clippy --all-targets -- --deny warnings
  44. if: success() || failure()
  45. - name: Build Solana programs
  46. run: cargo build-sbf
  47. if: success() || failure()
  48. - name: test
  49. run: cargo test
  50. if: success() || failure()