Skip to content

IBC Hooks: add hooks to call bridge escrow program #1811

IBC Hooks: add hooks to call bridge escrow program

IBC Hooks: add hooks to call bridge escrow program #1811

Workflow file for this run

---
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