Skip to content

enable ci

enable ci #49

Workflow file for this run

name: test
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
jobs:
test:
name: Anchor Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get rust toolchain version
id: toolchain
run: |
RUST_VERSION="$(awk '/channel =/ { print substr($3, 2, length($3)-2) }' rust-toolchain.toml)"
echo "::set-output name=version::${RUST_VERSION}"
- name: Get solana version
id: solana
run: |
SOLANA_VERSION="$(awk '/solana_version =/ { print substr($3, 2, length($3)-2) }' Anchor.toml)"
echo "::set-output name=version::${SOLANA_VERSION}"
- name: Get solana version
id: anchor
run: |
ANCHOR_VERSION="$(awk '/anchor_version =/ { print substr($3, 2, length($3)-2) }' Anchor.toml)"
echo "::set-output name=version::${ANCHOR_VERSION}"
- name: Cache rust toolchain
uses: actions/cache@v3
env:
cache-name: rust-toolchain
with:
path: |
~/.cargo/bin
~/.cargo/env
~/.rustup
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.toolchain.outputs.version }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@55c7845fad90d0ae8b2e83715cb900e5e861e8cb
with:
toolchain: ${{ steps.toolchain.outputs.version }}
components: "clippy,rustfmt"
- name: Cache rust packages / build cache
uses: actions/cache@v3
env:
cache-name: solana-rust-packages
with:
path: |
~/.cargo/bin
~/.cargo/registry
~/.cargo/git/db
target
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- run: cargo fmt --check --all
- run: cargo clippy
- name: Cache solana tools
id: cache-solana
uses: actions/cache@v3
env:
cache-name: solana-tools
with:
path: |
~/.local/share/solana/
~/.cache/solana/
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.solana.outputs.version }}
# - if: ${{ steps.cache-solana.outputs.cache-hit != 'true' }}
- name: Install solana tools
env:
SOLANA_VERSION: ${{ steps.solana.outputs.version }}
run: |
sh -c "$(curl -sSfL https://release.solana.com/v${SOLANA_VERSION}/install)"
ls ~/.local/share/solana/install/active_release/bin/
~/.local/share/solana/install/active_release/bin/sdk/spf/scripts/install.sh
- name: Cache anchor cli
id: cache-anchor
uses: actions/cache@v3
env:
cache-name: anchor-cli
with:
path: |
~/.cargo/bin/anchor
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.anchor.outputs.version }}
- if: ${{ steps.cache-anchor.outputs.cache-hit != 'true' }}
name: Install anchor cli
run: cargo install --git https://github.com/coral-xyz/anchor --tag v${{ steps.anchor.outputs.version }} anchor-cli --locked --force
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: "yarn"
- run: yarn
- run: |
export PATH="~/.local/share/solana/install/active_release/bin:$PATH"
solana-keygen new --no-bip39-passphrase
- run: |
anchor build