Skip to content

feat(anchor): add sysvar data aliases #92

feat(anchor): add sysvar data aliases

feat(anchor): add sysvar data aliases #92

Workflow file for this run

name: CI
on:
push:
branches: [dev, main]
pull_request:
branches: [dev, main]
env:
SOLANA_ZIG_VERSION: v1.52.0
jobs:
# Format check - fast, runs first
format:
name: Format Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-linux
- name: Install solana-zig
run: ./install-solana-zig.sh solana-zig
- name: Check SDK format
run: ./solana-zig/zig fmt --check sdk/src/
- name: Check Program SDK format
run: ./solana-zig/zig fmt --check src/
- name: Check Client SDK format
run: ./solana-zig/zig fmt --check client/src/
- name: Check Example Programs format
run: ./solana-zig/zig fmt --check examples/programs/
# SDK tests - pure Zig, no syscalls
sdk-test:
name: SDK Tests
needs: format
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-${{ runner.os }}
- name: Install solana-zig
shell: bash
run: ./install-solana-zig.sh solana-zig
- name: Test SDK
shell: bash
working-directory: sdk
run: ../solana-zig/zig build test --summary all
# Client SDK unit tests
client-test:
name: Client SDK Tests
needs: format
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-${{ runner.os }}
- name: Install solana-zig
shell: bash
run: ./install-solana-zig.sh solana-zig
- name: Test Client SDK
shell: bash
working-directory: client
run: ../solana-zig/zig build test --summary all
# Client SDK RPC integration tests (requires local validator)
client-integration-test:
name: Client RPC Integration Tests
needs: [sdk-test, client-test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-linux
- name: Cache Surfpool
uses: actions/cache@v4
with:
path: ~/.local/bin/surfpool
key: surfpool-latest
- name: Install solana-zig
run: ./install-solana-zig.sh solana-zig
- name: Install Surfpool
run: |
curl -sL https://run.surfpool.run/ | bash
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Start Surfpool
run: |
surfpool start --no-tui &
# Wait for surfpool to be ready
for i in {1..30}; do
if curl -s http://127.0.0.1:8899/health > /dev/null 2>&1; then
echo "Surfpool is ready"
break
fi
echo "Waiting for Surfpool... ($i/30)"
sleep 2
done
- name: Run Client Integration Tests
working-directory: client
run: ../solana-zig/zig build integration-test --summary all
# Program SDK tests - includes syscall stubs
program-test:
name: Program SDK Tests
needs: format
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-${{ runner.os }}
- name: Install solana-zig
shell: bash
run: ./install-solana-zig.sh solana-zig
- name: Test Program SDK
shell: bash
run: ./solana-zig/zig build test --summary all
# Integration tests - build actual programs and test with Rust
integration-test:
name: Integration Tests
needs: [sdk-test, program-test]
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-${{ runner.os }}
- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
program-test/target
key: cargo-${{ runner.os }}-${{ hashFiles('program-test/Cargo.lock') }}
restore-keys: |
cargo-${{ runner.os }}-
- name: Install solana-zig
shell: bash
run: ./install-solana-zig.sh solana-zig
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.86.0
- name: Install build deps
shell: bash
run: ./program-test/install-build-deps.sh
- name: Build and test programs
shell: bash
run: ./program-test/test.sh
# Example programs integration tests
example-programs-test:
name: Example Programs Tests
needs: [sdk-test, program-test]
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-${{ runner.os }}
- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
examples/programs/target
key: cargo-examples-${{ runner.os }}-${{ hashFiles('examples/programs/Cargo.lock') }}
restore-keys: |
cargo-examples-${{ runner.os }}-
- name: Install solana-zig
shell: bash
run: ./install-solana-zig.sh solana-zig
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.86.0
- name: Build example programs
shell: bash
working-directory: examples/programs
run: ../../solana-zig/zig build
- name: Run example program tests
shell: bash
working-directory: examples/programs
run: cargo test -- --ignored
# MCL tests - optional, for off-chain BN254 operations
mcl-test:
name: MCL Tests
needs: format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-linux
- name: Cache MCL build
uses: actions/cache@v4
with:
path: vendor/mcl/lib
key: mcl-lib-${{ hashFiles('vendor/mcl/src/**', 'vendor/mcl/include/**') }}
- name: Install solana-zig
run: ./install-solana-zig.sh solana-zig
- name: Install clang
run: sudo apt-get update && sudo apt-get install -y clang libc++-dev libc++abi-dev
- name: Test with MCL
run: ./solana-zig/zig build test -Dwith-mcl --summary all
# Build check for Solana target
build-solana:
name: Build for Solana
needs: format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache solana-zig
uses: actions/cache@v4
with:
path: solana-zig
key: solana-zig-${{ env.SOLANA_ZIG_VERSION }}-linux
- name: Install solana-zig
run: ./install-solana-zig.sh solana-zig
- name: Build for Solana SBF target
run: ./solana-zig/zig build -Dtarget=sbf-solana --summary all