Skip to content

program: rewrite crate tests in mollusk #27

program: rewrite crate tests in mollusk

program: rewrite crate tests in mollusk #27

Workflow file for this run

name: Main
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
format_and_lint_client_js:
name: Format & Lint Client JS
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
- name: Format Client JS
run: pnpm clients:js:format
- name: Lint Client JS
run: pnpm clients:js:lint
format_and_lint_client_rust:
if: false # Disabled until we have a Rust client
name: Format & Lint Client Rust
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
- name: Format Client Rust
run: pnpm clients:rust:format
- name: Lint Client Rust
run: pnpm clients:rust:lint
format_and_lint_program:
name: Format & Lint Program
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
- name: Format
run: pnpm programs:format
- name: Lint
run: pnpm programs:lint
audit_rust:
name: Audit Rust
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-audit
- name: Install cargo-audit
uses: taiki-e/install-action@v2
with:
tool: cargo-audit
- name: Run cargo-audit
run: pnpm rust:audit
semver_rust:
name: Check semver Rust
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-semver
- name: Install cargo-audit
uses: taiki-e/install-action@v2
with:
tool: cargo-semver-checks
- name: Run semver checks
run: pnpm rust:semver
spellcheck_rust:
name: Spellcheck Rust
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-spellcheck
- name: Install cargo-spellcheck
uses: taiki-e/install-action@v2
with:
tool: cargo-spellcheck
- name: Run cargo-spellcheck
run: pnpm rust:spellcheck
generate_clients:
name: Check Client Generation
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
rustfmt: true
- name: Generate Clients
run: pnpm generate:clients
- name: Check Working Directory
run: |
git status --porcelain
test -z "$(git status --porcelain)"
build_program:
name: Build Program
runs-on: ubuntu-latest
needs: format_and_lint_program
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-build-program
solana: true
- name: Build
run: pnpm programs:build
- name: Upload Program Builds
uses: actions/upload-artifact@v4
with:
name: program-builds
path: ./target/deploy/*.so
if-no-files-found: error
- name: Save Program Builds For Client Jobs
uses: actions/cache/save@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
test_client_js:
name: Test Client JS
runs-on: ubuntu-latest
needs: [format_and_lint_client_js, build_program]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
solana: true
- name: Restore Program Builds
uses: actions/cache/restore@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
- name: Test Client JS
run: pnpm clients:js:test
test_client_rust:
if: false # Disabled until we have a Rust client
name: Test Client Rust
runs-on: ubuntu-latest
needs: format_and_lint_client_rust
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-rust-client
solana: true
- name: Test Client Rust
run: pnpm clients:rust:test
test_program:
name: Test Program
runs-on: ubuntu-latest
needs: format_and_lint_program
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-test-program
solana: true
- name: Test
run: pnpm programs:test