token: Add Zig implementation (#15) #64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test programs | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
env: | |
SOLANA_ZIG_VERSION: v1.43.0 | |
SOLANA_ZIG_DIR: solana-zig | |
SOLANA_C_DIR: solana-c-sdk | |
SOLANA_LLVM_DIR: solana-llvm | |
jobs: | |
zig-test: | |
name: Run tests against Zig implementations | |
strategy: | |
matrix: | |
program: [helloworld, transfer-lamports, cpi, token] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cache/solana | |
~/.cache/zig | |
$SOLANA_ZIG_DIR | |
key: zig-${{ hashFiles('./Cargo.lock') }}-$SOLANA_ZIG_VERSION | |
- name: Download solana-zig compiler | |
shell: bash | |
run: SOLANA_ZIG_VERSION=$SOLANA_ZIG_VERSION ./install-solana-zig.sh $SOLANA_ZIG_DIR | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.81.0 | |
- name: Install build deps | |
run: ./install-rust-build-deps.sh | |
- name: Build and test program | |
run: ./test-zig.sh ${{ matrix.program }} | |
rust-test: | |
name: Run tests against Rust implementations | |
strategy: | |
matrix: | |
program: [helloworld, transfer-lamports, cpi, token] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cache/solana | |
key: rust-${{ hashFiles('./Cargo.lock') }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.81.0 | |
- name: Install Rust build deps | |
run: ./install-rust-build-deps.sh | |
- name: Install Solana | |
run: | | |
./install-solana.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test program | |
run: cd ${{ matrix.program }} && cargo test-sbf | |
c-test: | |
name: Run tests against C implementations | |
strategy: | |
matrix: | |
program: [helloworld, transfer-lamports, cpi] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cache/solana | |
$SOLANA_C_DIR | |
key: c-${{ hashFiles('./Cargo.lock') }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.81.0 | |
- name: Install Rust build deps | |
run: ./install-rust-build-deps.sh | |
- name: Install Solana | |
run: | | |
./install-solana.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Install C compiler | |
run: ./install-solana-c.sh $SOLANA_C_DIR | |
- name: Build and test program | |
run: ./test-c.sh ${{ matrix.program }} | |
asm-test: | |
name: Run tests against assembly implementations | |
strategy: | |
matrix: | |
program: [helloworld, transfer-lamports] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cache/solana | |
$SOLANA_LLVM_DIR | |
key: asm-${{ hashFiles('./Cargo.lock') }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.81.0 | |
- name: Install Rust build deps | |
run: ./install-rust-build-deps.sh | |
- name: Install LLVM | |
run: ./install-solana-llvm.sh $SOLANA_LLVM_DIR | |
- name: Build and test program | |
run: ./test-asm.sh ${{ matrix.program }} | |
pinocchio-test: | |
name: Run tests against Pinocchio Rust implementations | |
strategy: | |
matrix: | |
program: [transfer-lamports, cpi] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
~/.cache/solana | |
key: rust-${{ hashFiles('./Cargo.lock') }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: 1.81.0 | |
- name: Install Rust build deps | |
run: ./install-rust-build-deps.sh | |
- name: Install Solana | |
run: | | |
./install-solana.sh | |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Build and test program | |
run: ./test-pinocchio.sh ${{ matrix.program }} |