| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- name: "Lazer Solana contract test"
- on:
- push:
- branches:
- - main
- pull_request:
- paths:
- - lazer/**
- - .github/workflows/ci-lazer-solana-contract.yml
- jobs:
- lazer-solana-contract-test:
- name: Lazer Solana contract test
- runs-on: ubuntu-22.04
- defaults:
- run:
- working-directory: lazer/contracts/solana
- steps:
- - uses: actions/checkout@v4
- - uses: actions-rust-lang/setup-rust-toolchain@v1
- with:
- cache-workspaces: "lazer/contracts/solana -> target"
- - name: install taplo
- run: cargo install --locked taplo-cli@0.9.3
- - uses: actions/setup-node@v4
- with:
- node-version-file: "package.json"
- # Libusb is a build requirement for the node-hid package and so pnpm
- # install will fail if this isn't in the build environment and if a
- # precompiled binary isn't found.
- - name: Install libusb
- run: sudo apt-get update && sudo apt-get install -y libusb-1.0-0-dev libudev-dev
- - uses: pnpm/action-setup@v4
- name: Install pnpm
- with:
- run_install: true
- - name: Install Solana Cli
- run: |
- sh -c "$(curl -sSfL https://release.anza.xyz/v2.1.21/install)"
- echo "$HOME/.local/share/solana/install/active_release/bin" >> "$GITHUB_PATH"
- - name: Create Solana key
- run: solana-keygen new --no-bip39-passphrase
- - name: Install Anchor
- run: cargo install --git https://github.com/coral-xyz/anchor --tag v0.31.1 --locked anchor-cli
- - name: Run anchor tests
- run: pnpm run test:anchor
- - name: check Cargo.toml formatting
- run: find . -name Cargo.toml -exec taplo fmt --check --diff {} \;
- - name: Format check
- run: cargo fmt --all -- --check
- - name: Clippy check
- run: cargo clippy --all-targets -- --deny warnings
- - name: Build contract
- run: cargo build-sbf
- - name: test
- run: cargo test
|