Skip to content

Combined protocol "program" fees #574

Combined protocol "program" fees

Combined protocol "program" fees #574

Workflow file for this run

name: Test
on:
push:
branches:
- main
pull_request:
branches:
- "*"
defaults:
run:
shell: bash
working-directory: .
env:
RUST_TOOLCHAIN: 1.75.0
SOLANA_CLI_VERSION: 1.18.11
ANCHOR_CLI_VERSION: 0.30.1
ANCHOR_SHA: e6d7dafe12da661a36ad1b4f3b5970e8986e5321
CARGO_TERM_COLOR: always
concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Rust Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-common/
- uses: ./.github/actions/setup-anchor-cli/
# - uses: actions/cache@v2
# name: Cache Cargo registry + index
# id: cache-cargo-build
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# key: cargo-${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
- run: cargo fmt -- --check
- run: ./scripts/lint.sh
test-unit:
name: Rust Unit Tests
runs-on: ubuntu-latest
# env:
# RUSTUP_TOOLCHAIN: stable
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-common/
- uses: ./.github/actions/setup-anchor-cli/
# - uses: actions/cache@v2
# name: Cache Cargo registry + index
# id: cache-cargo-build
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# key: cargo-${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
- run: cargo test --lib
build-and-test-workspace:
name: Build And Test Anchor Programs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup-common/
- uses: ./.github/actions/setup-anchor-cli/
- uses: ./.github/actions/build-workspace/
- run: ./scripts/test-program.sh all --sane
shell: bash
fuzz:
name: Fuzz The marginfi Program
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ./programs/marginfi/fuzz
steps:
- uses: actions/checkout@v3
# - name: cache dependencies
# uses: Swatinem/rust-cache@v2
- name: Install full rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2024-06-05
components: rust-src
- name: Run fuzz tests in fuzz dir
run: |
python ./generate_corpus.py
cargo install cargo-fuzz --locked
cargo +nightly-2024-06-05 fuzz run lend -Zbuild-std --strip-dead-code --no-cfg-fuzzing -- -max_total_time=300
- name: Pass after fuzzing
run: echo "Fuzzing completed"
# localnet-test-marginfi:
# name: Anchor localnet tests marginfi
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: ./.github/actions/setup-common/
# - uses: ./.github/actions/setup-anchor-cli/
# - uses: ./.github/actions/build-workspace/
# - name: Install Node.js dependencies
# run: yarn install
# - name: Build marginfi program
# run: anchor build -p marginfi -- --no-default-features
# - name: Build liquidity incentive program
# run: anchor build -p liquidity_incentive_program -- --no-default-features
# - name: Build mocks program
# run: anchor build -p mocks
# - name: Start Solana Test Validator
# run: |
# solana-test-validator --reset --limit-ledger-size 1000 \
# - name: Wait for Validator to Start
# run: sleep 60
# - name: Deploy Liquidity Incentive Program
# run: solana program deploy --program-id Lip1111111111111111111111111111111111111111 target/deploy/liquidity_incentive_program.so
# - name: Deploy Marginfi Program
# run: solana program deploy --program-id 2jGhuVUuy3umdzByFx8sNWUAaf5vaeuDm78RDPEnhrMr target/deploy/marginfi.so
# - name: Deploy Mocks Program
# run: solana program deploy --program-id 5XaaR94jBubdbrRrNW7DtRvZeWvLhSHkEGU3jHTEXV3C target/deploy/mocks.so
# - name: Run tests
# run: anchor test --skip-build --skip-local-validator