[intent-coprocessor]: Price Discovery Protocol #3707
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "**/Cargo.lock" | |
| - ".github/workflows/ci.yml" | |
| - "!sdk/**" | |
| pull_request_target: | |
| types: [opened, synchronize] | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "**/Cargo.lock" | |
| - ".github/workflows/ci.yml" | |
| - "!sdk/**" | |
| # pull_request: | |
| # branches: | |
| # - main | |
| # paths: | |
| # - "**/*.rs" | |
| # - "**/Cargo.toml" | |
| # - "**/Cargo.lock" | |
| # - ".github/workflows/ci.yml" | |
| concurrency: | |
| group: ci-${{ github.head_ref || github.ref_name }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| FOUNDRY_PROFILE: default | |
| BSC_URL: ${{ secrets.BSC_URL }} | |
| OP_URL: ${{ secrets.OP_URL }} | |
| SEPOLIA_URL: ${{ secrets.SEPOLIA_URL }} | |
| SIGNING_KEY: ${{ secrets.SIGNING_KEY }} | |
| POLYGON_RPC: ${{ secrets.POLYGON_RPC }} | |
| WASM_BINDGEN_TEST_TIMEOUT: 5400 | |
| GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
| MAINNET_FORK_URL: ${{ secrets.MAINNET_FORK_URL }} | |
| TELEMETRY_SECRET_KEY: ${{ secrets.TELEMETRY_SECRET_KEY }} | |
| STANDARD_TENDERMINT_URL: ${{secrets.STANDARD_TENDERMINT_URL}} | |
| POLYGON_HEIMDALL: ${{secrets.POLYGON_HEIMDALL}} | |
| POLYGON_HEIMDALL_REST: ${{secrets.POLYGON_HEIMDALL_REST}} | |
| POLYGON_EXECUTION_RPC: ${{secrets.POLYGON_EXECUTION_RPC}} | |
| SEI_RPC_URL: ${{secrets.SEI_RPC_URL}} | |
| KAVA_RPC_URL: ${{secrets.KAVA_RPC_URL}} | |
| jobs: | |
| check-wasm: | |
| name: Check Wasm Crates | |
| runs-on: arc-runner-set | |
| if: github.event.pull_request.draft != true | |
| strategy: | |
| matrix: | |
| crate: [gargantua-runtime, nexus-runtime] | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - name: check no-std | |
| env: | |
| RUSTFLAGS: "--cfg substrate_runtime" | |
| run: | | |
| cargo check -p ${{ matrix.crate }} --no-default-features --target=wasm32-unknown-unknown --locked | |
| check-workspace: | |
| name: Check Workspace | |
| runs-on: arc-runner-set | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| curl -L https://sp1.succinct.xyz | bash | |
| ~/.sp1/bin/sp1up --token $GITHUB_TOKEN | |
| ~/.sp1/bin/cargo-prove prove --version | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.24" | |
| - name: check workspace | |
| run: | | |
| cargo check --all --benches --locked | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: arc-runner-set | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| curl -L https://sp1.succinct.xyz | bash | |
| ~/.sp1/bin/sp1up --token $GITHUB_TOKEN | |
| ~/.sp1/bin/cargo-prove prove --version | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - name: Install Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.24" | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run unit tests | |
| run: | | |
| cargo test --all-targets --locked | |
| simnet-tests: | |
| name: Simnet Tests | |
| runs-on: arc-runner-set | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run Simnet Tests | |
| run: | | |
| cargo build -p hyperbridge --release | |
| ./target/release/hyperbridge simnode --chain=gargantua-2000 --name=alice --tmp --state-pruning=archive --blocks-pruning=archive --rpc-port=9990 --port 40337 --log="mmr=trace" --rpc-cors=all --unsafe-rpc-external --rpc-methods=unsafe --pool-type=single-state & | |
| ./scripts/wait_for_tcp_port_opening.sh localhost 9990 | |
| cargo test -p simtests -- --nocapture --ignored --test-threads=1 --skip test_runtime_upgrade_and_fee_migration | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| pkill -f "hyperbridge simnode" || true | |
| fuser -k 9990/tcp || true | |
| xcm-tests: | |
| name: XCM Integration Tests | |
| runs-on: arc-runner-set | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Build Hyperbridge Binary | |
| run: cargo build --release -p hyperbridge | |
| - name: Setup Parachain Devnet | |
| run: | | |
| cd ../ | |
| mkdir -p polkadot-sdk/target/release | |
| cd polkadot-sdk/target/release | |
| wget -O ./polkadot -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot' | |
| wget -O ./polkadot-parachain -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-parachain' | |
| wget -O ./polkadot-execute-worker -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-execute-worker' | |
| wget -O ./polkadot-prepare-worker -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-prepare-worker' | |
| sudo chmod +x ./polkadot | |
| sudo chmod +x ./polkadot-parachain | |
| sudo chmod +x ./polkadot-execute-worker | |
| sudo chmod +x ./polkadot-prepare-worker | |
| cd ../../../hyperbridge | |
| wget -O ./zombienet -q --show-progress https://github.com/paritytech/zombienet/releases/download/v1.3.133/zombienet-linux-x64 | |
| sudo chmod +x ./zombienet | |
| nohup ./zombienet spawn --provider native ./scripts/zombienet/local-testnet.toml & disown | |
| ./scripts/wait_for_tcp_port_opening.sh localhost 9922 | |
| ./scripts/wait_for_tcp_port_opening.sh localhost 9990 | |
| ./scripts/wait_for_tcp_port_opening.sh localhost 9910 | |
| - name: Run XCM Tests | |
| run: | | |
| cargo test -p pallet-ismp-testsuite --lib xcm_integration_test -- --nocapture --ignored | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| pkill -f "hyperbridge" || true | |
| pkill -f "polkadot" || true | |
| pkill -f "zombienet" || true | |
| sudo rm -rf ./zombienet | |
| cd ../ | |
| sudo rm -rf ./polkadot-sdk | |
| ethereum-tests: | |
| name: Ethereum Sync Committee Tests | |
| runs-on: ubuntu-22.04 | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Setup Eth POS Devnet | |
| run: | | |
| git clone --branch david/electra https://github.com/polytope-labs/eth-pos-devnet.git | |
| DOCKER_CLIENT_TIMEOUT=300 COMPOSE_HTTP_TIMEOUT=300 docker compose -f ./eth-pos-devnet/docker-compose.yml up -d | |
| ./scripts/wait_for_tcp_port_opening.sh localhost 3500 | |
| ./scripts/wait_for_tcp_port_opening.sh localhost 8545 | |
| - name: Run Sync Committee Tests | |
| run: | | |
| cargo test -p sync-committee-prover -- --nocapture --ignored | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| docker-compose -f ./eth-pos-devnet/docker-compose.yml down || true | |
| sudo rm -rf ./eth-pos-devnet | |
| bsc-tests: | |
| name: Binance Smart Chain Tests | |
| runs-on: ubuntu-22.04 | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run BSC Tests | |
| run: | | |
| cargo test -p bsc-prover -- --nocapture --ignored | |
| tendermint-tests: | |
| name: Tendermint Tests | |
| runs-on: ubuntu-22.04 | |
| if: github.event.pull_request.draft != true | |
| steps: | |
| - name: Get User Permission | |
| id: checkAccess | |
| uses: actions-cool/check-user-permission@v2 | |
| with: | |
| require: write | |
| username: ${{ github.triggering_actor }} | |
| - name: Check User Permission | |
| if: steps.checkAccess.outputs.require-result == 'false' | |
| run: | | |
| echo "${{ github.triggering_actor }} does not have permissions on this repo." | |
| echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | |
| echo "Job originally triggered by ${{ github.actor }}" | |
| exit 1 | |
| - uses: actions/checkout@v3 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| token: ${{ secrets.GH_TOKEN }} | |
| submodules: recursive | |
| - name: Install toolchain | |
| uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| toolchain: stable | |
| - name: Add wasm toolchain | |
| run: | | |
| rustup update nightly | |
| rustup target add wasm32-unknown-unknown --toolchain nightly | |
| rustup target add wasm32-unknown-unknown | |
| rustup component add rust-src | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config | |
| echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Set up Node | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache-dependency-path: "evm/pnpm-lock.yaml" | |
| cache: "pnpm" | |
| - name: Install npm dependencies | |
| working-directory: evm | |
| run: | | |
| pnpm install | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Build Foundry artifacts | |
| working-directory: evm | |
| run: forge build | |
| - uses: webfactory/ssh-agent@v0.7.0 | |
| with: | |
| ssh-private-key: ${{ secrets.SSH_KEY }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Run Tendermint Tests | |
| run: | | |
| RUST_LOG=tendermint_prover=trace,tesseract=trace,tendermint_verifier=trace cargo test -p tendermint-prover -- --nocapture --ignored |