|
@@ -7,25 +7,6 @@ on:
|
|
|
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
|
|
|
-
|
|
|
- - name: Format Programs
|
|
|
- run: pnpm programs:format
|
|
|
-
|
|
|
- - name: Lint Programs
|
|
|
- run: pnpm programs:lint
|
|
|
-
|
|
|
format_and_lint_client_js:
|
|
|
name: Format & Lint Client JS
|
|
|
runs-on: ubuntu-latest
|
|
@@ -61,80 +42,9 @@ jobs:
|
|
|
- name: Lint Client Rust
|
|
|
run: pnpm clients:rust:lint
|
|
|
|
|
|
- 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 Programs
|
|
|
- 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_programs:
|
|
|
- name: Test Progams
|
|
|
- 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
|
|
|
-
|
|
|
- generate_idls:
|
|
|
- name: Check IDL Generation
|
|
|
- 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
|
|
|
- cargo-cache-local-key: cargo-local
|
|
|
-
|
|
|
- - name: Generate IDLs
|
|
|
- run: pnpm generate:idls
|
|
|
-
|
|
|
- - name: Check Working Directory
|
|
|
- run: |
|
|
|
- git status --porcelain
|
|
|
- test -z "$(git status --porcelain)"
|
|
|
-
|
|
|
generate_clients:
|
|
|
name: Check Client Generation
|
|
|
runs-on: ubuntu-latest
|
|
|
- needs: format_and_lint_programs
|
|
|
steps:
|
|
|
- name: Git Checkout
|
|
|
uses: actions/checkout@v4
|
|
@@ -155,7 +65,7 @@ jobs:
|
|
|
test_client_js:
|
|
|
name: Test Client JS
|
|
|
runs-on: ubuntu-latest
|
|
|
- needs: build_programs
|
|
|
+ needs: format_and_lint_client_js
|
|
|
steps:
|
|
|
- name: Git Checkout
|
|
|
uses: actions/checkout@v4
|
|
@@ -165,19 +75,13 @@ jobs:
|
|
|
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:
|
|
|
name: Test Client Rust
|
|
|
runs-on: ubuntu-latest
|
|
|
- needs: build_programs
|
|
|
+ needs: format_and_lint_client_rust
|
|
|
steps:
|
|
|
- name: Git Checkout
|
|
|
uses: actions/checkout@v4
|
|
@@ -188,11 +92,5 @@ jobs:
|
|
|
cargo-cache-key: cargo-rust-client
|
|
|
solana: true
|
|
|
|
|
|
- - name: Restore Program Builds
|
|
|
- uses: actions/cache/restore@v4
|
|
|
- with:
|
|
|
- path: ./**/*.so
|
|
|
- key: ${{ runner.os }}-builds-${{ github.sha }}
|
|
|
-
|
|
|
- name: Test Client Rust
|
|
|
run: pnpm clients:rust:test
|