Skip to content

p-token: Fix error codes #158

p-token: Fix error codes

p-token: Fix error codes #158

Workflow file for this run

name: Main
on:
push:
branches: [main]
pull_request:
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
format_and_lint_interface:
name: Format & Lint Interface
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 interface:format
- name: Lint
run: pnpm interface:lint
format_and_lint_ptoken:
name: Format & Lint p-token
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 p-token:format
- name: Lint
run: pnpm p-token: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
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 }}
build_ptoken:
name: Build p-token
runs-on: ubuntu-latest
needs: [format_and_lint_interface, format_and_lint_ptoken]
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 p-token:build
- name: Upload p-token Builds
uses: actions/upload-artifact@v4
with:
name: p-token-builds
path: ./target/deploy/*.so
if-no-files-found: error
- name: Save p-token Build For Client Jobs
uses: actions/cache/save@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-ptoken-build-${{ 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: build_program
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-test-program
- name: Restore Program Builds
uses: actions/cache/restore@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
- name: Test
run: pnpm programs:test
conformance_ptoken:
name: Conformance Test for p-token
runs-on: ubuntu-latest
needs: build_ptoken
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-fixtures-ptoken
solana: true
- name: Restore Program Builds
uses: actions/cache/restore@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-ptoken-build-${{ github.sha }}
- name: Install mollusk-svm-cli
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: mollusk-svm-cli
- name: Generate SPL Token Fixtures
run: pnpm fixtures:generate
- name: Run Fixtures
run: pnpm fixtures:run pinocchio_token_program