Skip to content

fix concurrency group for pull_request_target #548

fix concurrency group for pull_request_target

fix concurrency group for pull_request_target #548

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request_target:
types: [opened, synchronize]
concurrency:
group: ci-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
FOUNDRY_PROFILE: ci
BNB_RPC: ${{ secrets.BNB_RPC }}
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: 3600
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
jobs:
check-wasm:
name: Check Wasm Crates
runs-on: arc-runner-set
if: github.event.pull_request.draft == false
strategy:
matrix:
crate: [messier-runtime, 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 libudev-dev make protobuf-compiler pkg-config
- 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
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 == false
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 libudev-dev make protobuf-compiler pkg-config
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- 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
- name: check workspace
run: |
cargo check --all --benches --locked
fmt:
name: Cargo fmt
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Cargo fmt
run: cargo +nightly fmt --all --check
unit-tests:
name: Unit Tests
runs-on: arc-runner-set
if: github.event.pull_request.draft == false
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 libudev-dev make protobuf-compiler pkg-config
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- 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
- name: Run unit tests
run: |
cargo test --all-targets --features=runtime-benchmarks --locked
integration-tests:
name: Integration Tests
runs-on: arc-runner-set
if: github.event.pull_request.draft == false
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 libudev-dev make protobuf-compiler pkg-config
- 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: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
# - name: Run Parachain Devnet
# run: |
# # install polkadot binary
# cd ../
# mkdir -p polkadot-sdk/target/release
# wget -O ./polkadot.tar.gz -q --show-progress 'https://dl.dropbox.com/scl/fi/onsvsex4w9vf5vghqe23j/polkadot.tar.gz?rlkey=17e3gq0n82v8hhar4nzlynruu&dl=0'
# tar xvzf ./polkadot.tar.gz
# mv bins/* polkadot-sdk/target/release
# ls -la polkadot-sdk/target/release
# # install hyperbridge binary
# cd hyperbridge
# mkdir -p target/release
# wget -q --show-progress https://github.com/polytope-labs/hyperbridge/releases/download/v0.2.0/hyperbridge-x86_64-unknown-linux-gnu.tar.gz
# tar xvzf ./hyperbridge-x86_64-unknown-linux-gnu.tar.gz
# mv ./hyperbridge-x86_64-unknown-linux-gnu/hyperbridge target/release
# # install zombienet
# wget -O ./zombienet -q --show-progress https://github.com/paritytech/zombienet/releases/download/v1.3.89/zombienet-linux-x64
# sudo chmod +x ./zombienet
# # spawn devnet
# nohup ./zombienet spawn --provider native ./local-testnet.toml & disown
# ../wait_for_tcp_port_opening.sh localhost 9944
# ../wait_for_tcp_port_opening.sh localhost 9988
# - name: Beefy integration tests
# run: |
# cargo test -p ismp-solidity-tests -- --nocapture --ignored
- name: Run Eth POS Devnet
run: |
git clone https://github.com/polytope-labs/eth-pos-devnet.git
cd eth-pos-devnet
DOCKER_CLIENT_TIMEOUT=300 COMPOSE_HTTP_TIMEOUT=300 docker-compose up -d
../scripts/wait_for_tcp_port_opening.sh localhost 3500
../scripts/wait_for_tcp_port_opening.sh localhost 8545
- name: sync-committee integration tests
run: |
cargo test -p sync-committee-prover -- --nocapture --ignored
# - name: polygon pos integration tests
# run: |
# cargo test -p polygon-pos-prover -- --nocapture --ignored
- name: Binance Smart Chain integration tests
run: |
cargo test -p bsc-pos-prover -- --nocapture --ignored
check-solidity:
name: Check ismp-solidity
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Run Forge build
run: |
cd ./evm
forge --version
forge build --sizes
id: build
- name: Run Forge tests
run: |
cd ./evm
forge test -vvv
id: test
hyperclient-tests:
name: Hyperclient Integration Tests
runs-on: ubuntu-latest
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 wasm-pack
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
rustup target add wasm32-unknown-unknown
- name: Install chrome
uses: browser-actions/setup-chrome@latest
- name: Run WASM tests
run: |
wasm-pack test --headless --chrome --no-default-features --features=wasm
working-directory: modules/client