Skip to content

Publish JS client v0.2.0 #167

Publish JS client v0.2.0

Publish JS client v0.2.0 #167

Workflow file for this run

name: Main
on:
push:
branches: [main]
pull_request:
jobs:
format_and_lint_client_rust:
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:
toolchain: format, lint
- name: Format
run: pnpm rust:format
- name: Lint / Clippy
run: pnpm rust:lint:clippy
- name: Lint / Docs
run: pnpm rust:lint:docs
- name: Lint / Features
run: pnpm rust:lint:features
test_client_rust:
name: Test Client 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-rust-client
toolchain: test
solana: true
- name: Test Client Rust
run: pnpm rust:test
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:
toolchain: format, lint
- name: Format
run: pnpm interface:format
- name: Lint / Clippy
run: pnpm interface:lint:clippy
- name: Lint / Docs
run: pnpm interface:lint:docs
- name: Lint / Features
run: pnpm interface:lint:features
test_interface:
name: Test Interface
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
toolchain: test
cargo-cache-key: cargo-interface
solana: true
- name: Test Interface
run: pnpm interface:test
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:
toolchain: format, lint
- name: Format
run: pnpm program:format
- name: Lint / Clippy
run: pnpm program:lint:clippy
- name: Lint / Docs
run: pnpm program:lint:docs
- name: Lint / Features
run: pnpm program:lint:features
build_program:
name: Build program
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-program
toolchain: build
solana: true
- name: Build Program
run: pnpm program:build
- name: Upload Program Build
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 }}-build-${{ github.sha }}
# TODO program_test is too unreliable to run in ci
# the tests are fine, but the underlying transport panics frequently, even with `--test-threads 1`
# we exclude these tests for now because mollusk tests at least provide decent ci coverage
# in the future if we cannot debug the cause we should move program_test to a different execution engine
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-program
toolchain: test
solana: true
- name: Restore Program Build
uses: actions/cache/restore@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-build-${{ github.sha }}
- name: Run Program Tests
run: cargo test --features bpf-entrypoint -- --skip program_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:
# toolchain: format
#
# - name: Generate Clients
# run: pnpm generate:clients
#
# - name: Check Working Directory
# run: |
# git status --porcelain
# test -z "$(git status --porcelain)"
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 js:format
- name: Lint Client JS
run: pnpm js:lint
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 Build
uses: actions/cache/restore@v4
with:
path: ./**/*.so
key: ${{ runner.os }}-build-${{ github.sha }}
- name: Test Client JS
run: pnpm js:test