Skip to content

[rust-legacy-cli] Add scaled ui amount extension #271

[rust-legacy-cli] Add scaled ui amount extension

[rust-legacy-cli] Add scaled ui amount extension #271

Workflow file for this run

name: Main
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
format_and_lint_programs:
name: Format & Lint Programs
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
cargo-cache-key: cargo-programs-lint
cargo-cache-fallback-key: cargo-programs
- name: Format Token-2022
run: pnpm programs:format
- name: Lint Token-2022
run: pnpm programs:lint
- name: Format ElGamal Registry
run: pnpm confidential-transfer:elgamal-registry:format
- name: Lint ElGamal Registry
run: pnpm confidential-transfer:elgamal-registry:lint
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_js_legacy:
name: Format & Lint Client JS Legacy
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
- name: Format Client JS Legacy
run: pnpm clients:js-legacy:format
- name: Lint Client JS Legacy
run: pnpm clients:js-legacy:lint
format_and_lint_cli:
name: Format & Lint CLI
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
cli: true
purge: true
cargo-cache-key: cargo-cli-lint
cargo-cache-fallback-key: cargo-cli
- name: Format CLI
run: pnpm clients:cli:format
- name: Lint CLI
run: pnpm clients:cli: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_client_rust_legacy:
name: Format & Lint Client Rust Legacy
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
purge: true
cargo-cache-key: cargo-client-rust-legacy-lint
cargo-cache-fallback-key: cargo-client-rust-legacy
- name: Format Client Rust Legacy
run: pnpm clients:rust-legacy:format
- name: Lint Client Rust Legacy
run: pnpm clients:rust-legacy:lint
format_and_lint_confidential_transfer:
name: Format & Lint Confidential Transfer
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
clippy: true
rustfmt: true
cargo-cache-key: cargo-confidential-transfer-lint
cargo-cache-fallback-key: cargo-confidential-transfer
- name: Format Ciphertext Arithmetic
run: pnpm confidential-transfer:ciphertext-arithmetic:format
- name: Lint Ciphertext Arithmetic
run: pnpm confidential-transfer:ciphertext-arithmetic:lint
- name: Format Proof Extraction
run: pnpm confidential-transfer:proof-extraction:format
- name: Lint Proof Extraction
run: pnpm confidential-transfer:proof-extraction:lint
- name: Format Proof Generation
run: pnpm confidential-transfer:proof-generation:format
- name: Lint Proof Generation
run: pnpm confidential-transfer:proof-generation:lint
- name: Format Proof Tests
run: pnpm confidential-transfer:proof-tests:format
- name: Lint Proof Tests
run: pnpm confidential-transfer:proof-tests:lint
test_confidential_transfer_proofs:
name: Test Confidential Transfer Proofs
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-confidential-transfer-test
cargo-cache-fallback-key: cargo-confidential-transfer
- name: Test Confidential Transfer Proofs
run: pnpm confidential-transfer:proof-tests:test
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)"
test_client_js:
name: Test Client JS
runs-on: ubuntu-latest
needs: [format_and_lint_client_js, build_programs]
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: ./target/deploy/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
- name: Test Client JS
run: pnpm clients:js:test
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:
if: false # enable after token-2022 bumps to a new major version
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
build_programs:
name: Build programs
runs-on: ubuntu-latest
needs: format_and_lint_programs
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-programs
solana: true
- name: Build Token-2022
run: pnpm programs:build
- name: Build ElGamal Registry
run: pnpm confidential-transfer:elgamal-registry: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: ./target/deploy/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
test_programs:
name: Test Programs
runs-on: ubuntu-latest
needs: format_and_lint_programs
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-program-tests
cargo-cache-fallback-key: cargo-programs
solana: true
- name: Test Programs
run: pnpm programs:test
test_cli:
name: Test CLI
runs-on: ubuntu-latest
needs: [format_and_lint_cli, build_programs]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-cli-tests
cargo-cache-fallback-key: cargo-cli
cli: true
purge: true
- name: Restore Program Builds
uses: actions/cache/restore@v4
with:
path: ./target/deploy/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
- name: Test CLI
run: pnpm clients:cli:test
test_client_js_legacy:
name: Test Client JS Legacy
runs-on: ubuntu-latest
needs: [format_and_lint_client_js_legacy, build_programs]
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: ./target/deploy/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
- name: Test Client JS Legacy
run: pnpm clients:js-legacy:test
test_client_rust_legacy:
name: Test Client Rust Legacy
runs-on: ubuntu-latest
needs: [format_and_lint_client_rust_legacy, build_programs]
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-client-rust-legacy-test
cargo-cache-fallback-key: cargo-client-rust-legacy
purge: true
- name: Restore Program Builds
uses: actions/cache/restore@v4
with:
path: ./target/deploy/*.so
key: ${{ runner.os }}-builds-${{ github.sha }}
- name: Test Client Rust Legacy
run: pnpm clients:rust-legacy: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