solana-ibc: add support for witness account (#388) #1809
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: PR Checks | |
on: | |
pull_request: | |
branches: | |
- '*' | |
push: | |
branches: | |
- master | |
env: | |
# Rust 1.80 breaks `time` dependency. We have updated *our* dependency but | |
# Anchor CLI 0.29 uses old `time` which doesn’t compile with new Rust. | |
# Because of that, we limit the stable Rust version to 1.79. | |
RUST_STABLE_VERSION: 1.79 | |
SOLANA_VERSION: v1.17.7 | |
ANCHOR_VERSION: 0.29.0 | |
jobs: | |
misc: | |
name: Miscellaneous checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
id: install-rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
# Pin nightly to specific version to avoid ahash breakage. | |
# See https://github.com/tkaitchuck/aHash/issues/200 | |
# TODO(mina86): Unpin once situation with ahash is resolved. | |
# Hopefully we won’t need to patch. | |
#toolchain: nightly | |
toolchain: nightly-2024-02-05 | |
components: clippy rustfmt miri | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check formatting | |
run: | | |
cargo fmt --all --check | |
( cd solana/trie-geyser-plugin && cargo fmt --all --check ) | |
- name: Check Clippy (all features) | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all-features -- -D warnings | |
- name: Check trie-geyser Clippy (all features) | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all-features --manifest-path solana/trie-geyser-plugin/Cargo.toml -- -D warnings | |
- name: Miri tests | |
run: | | |
cargo miri test -- -Z unstable-options --report-time --skip ::anchor | |
( cd solana/trie-geyser-plugin && cargo miri test -- -Z unstable-options --report-time ) | |
anchor-build: | |
name: Anchor Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Node JS 16 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16.14.2 | |
cache: "yarn" | |
- name: Install Rust | |
id: install-rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE_VERSION }} | |
components: rustfmt | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Cache Anchor | |
id: cache-anchor | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.avm | |
~/.cargo/bin/avm | |
~/.cargo/bin/anchor | |
~/.config/solana/ | |
~/.local/share/solana/ | |
key: ${{ runner.os }}-${{ steps.install-rust.outputs.cachekey }}-${{ env.SOLANA_VERSION }}-${{ env.ANCHOR_VERSION }}-anchor | |
- name: Install Solana | |
if: steps.cache-anchor.outputs.cache-hit != 'true' | |
run: | | |
set -eux | |
curl -sSfL https://release.solana.com/$SOLANA_VERSION/install | sh | |
cp solana/solana-ibc/keypair.json ~/.config/solana/id.json | |
- name: Setup Solana PATH | |
run: echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH | |
- name: Install Anchor | |
if: steps.cache-anchor.outputs.cache-hit != 'true' | |
run: | | |
set -eux | |
cargo install --git https://github.com/coral-xyz/anchor avm --locked --force | |
avm install $ANCHOR_VERSION | |
avm use $ANCHOR_VERSION | |
- name: Installing node modules | |
run : yarn | |
- name: Installing ts-mocha and typescript globally | |
run: yarn global add ts-mocha typescript | |
- name: Anchor Build (with mocks) | |
run: anchor build -- --features=mocks | |
- name: Anchor Test | |
run: anchor test --skip-build | |
tests: | |
name: Rust tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ env.RUST_STABLE_VERSION }} | |
components: rustfmt | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run tests (default features) | |
run: cargo test | |
- name: Run tests (no default features) | |
run: cargo test --no-default-features | |
- name: Run tests (all features) | |
run: cargo test --all-features | |
- name: Run trie-geyser tests (default features) | |
run: cd solana/trie-geyser-plugin && cargo test | |
- name: Run trie-geyser tests (no default features) | |
run: cd solana/trie-geyser-plugin && cargo test --no-default-features | |
- name: Run trie-geyser tests (all features) | |
run: cd solana/trie-geyser-plugin && cargo test --all-features |