ci-solana-contract.yml 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. name: Test Solana Contract
  2. on:
  3. pull_request:
  4. paths:
  5. - .github/workflows/ci-solana-contract.yml
  6. - target_chains/solana/**
  7. - pythnet/pythnet_sdk/**
  8. push:
  9. branches:
  10. - main
  11. env:
  12. CARGO_TERM_COLOR: always
  13. jobs:
  14. build:
  15. runs-on: ubuntu-latest
  16. defaults:
  17. run:
  18. working-directory: target_chains/solana
  19. steps:
  20. - uses: actions/checkout@v2
  21. - uses: Swatinem/rust-cache@v2
  22. with:
  23. workspaces: "target_chains/solana -> target"
  24. - uses: actions-rs/toolchain@v1
  25. with:
  26. toolchain: 1.73.0
  27. components: rustfmt, clippy
  28. override: true
  29. - name: Install Solana
  30. run: |
  31. sh -c "$(curl -sSfL https://release.anza.xyz/v1.17.34/install)"
  32. echo "/home/runner/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
  33. - name: Format check
  34. run: cargo fmt --all -- --check
  35. if: success() || failure()
  36. - name: Clippy check
  37. run: cargo clippy --tests -- --deny warnings
  38. if: success() || failure()
  39. - name: Build
  40. run: cargo-build-sbf
  41. if: success() || failure()
  42. - name: Run tests
  43. run: cargo-test-sbf
  44. if: success() || failure()
  45. - name: Run sdk tests
  46. run: cargo test --package pyth-solana-receiver-sdk
  47. if: success() || failure()