Skip to content

feat: flow limits (#519) #15

feat: flow limits (#519)

feat: flow limits (#519) #15

name: Continuous Integration for Solana Programs
on:
push:
branches: [main]
paths:
- solana/**
- .github/workflows/solana-programs.yml
pull_request:
branches: [main]
paths:
- solana/**
- .github/workflows/solana-programs.yml
env:
SOLANA_VERSION: "v1.18.13"
defaults:
run:
working-directory: solana
shell: bash
jobs:
rustfmt:
name: Check code formatting
runs-on: large-runner
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup repo
uses: ./.github/actions/setup-solana-repo
- name: Run rustfmt
run: cargo make fmt-check
clippy:
name: Clippy linting
runs-on: large-runner
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup repo
uses: ./.github/actions/setup-solana-repo
- name: Run clippy
run: cargo make clippy-check
unused-deps:
name: Check for unused dependencies
runs-on: large-runner
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup repo
uses: ./.github/actions/setup-solana-repo
- name: Unused deps
run: cargo make unused-deps
tests:
name: Solana Integration tests
runs-on: large-runner
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup repo
uses: ./.github/actions/setup-solana-repo
- name: Cache Solana
uses: actions/cache@v4
with:
path: ~/.cache/solana
key: solana-${{ env.SOLANA_VERSION }}
- name: Install Solana
run: |
curl -sSfL https://release.solana.com/${{ env.SOLANA_VERSION}}/install | sh
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
# Needed because test helpers use interdependencies
- name: Build programs
run: |
for program in programs/*; do
cargo build-sbf --manifest-path $program/Cargo.toml
done
- name: Run integration tests
run: cargo make test