metaboss 0.49.0

The Metaplex NFT-standard Swiss Army Knife tool.
Documentation
on:
  workflow_dispatch:
  push:
    branches: [main]
  pull_request:

name: Format and Compile Checks

jobs:
  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo test

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - run: cargo clippy -- -D warnings

  # Integration tests run against a local Solana test validator.
  # They require Solana CLI tools and must run sequentially (--test-threads=1)
  # because each test starts its own validator on port 8899.
  integration-test:
    name: Integration Tests
    runs-on: ubuntu-latest
    needs: test
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - name: Install Solana CLI tools
        run: |
          sh -c "$(curl -sSfL https://release.anza.xyz/v1.17.29/install)"
          echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
      - name: Build
        run: cargo build
      - name: Run integration tests
        run: cargo test --test integration_tests --test collection_tests --test create_mint_tests --test decode_tests --test set_tests --test update_tests --test verify_tests -- --ignored --test-threads=1