Upgrade to Polkadot SDK #2580
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: parachain | |
on: | |
push: | |
paths: | |
- "parachain/**" | |
- "!parachain/README.md" | |
- "!parachain/LICENSE" | |
branches: | |
- main | |
pull_request: | |
paths: | |
- "parachain/**" | |
- "!parachain/README.md" | |
- "!parachain/LICENSE" | |
workflow_dispatch: | |
env: | |
FUZZ_MAX_LEN: 10000000000 | |
FUZZ_MAX_RUNS: 30000 | |
RUST_NIGHTLY: "2023-05-23" | |
jobs: | |
check: | |
runs-on: snowbridge-runner | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: -C debuginfo=1 | |
SKIP_WASM_BUILD: 1 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- uses: actions/cache@v1 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: ${{ runner.os }}-cargo-${{ hashFiles('parachain/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: setup rust toolchain | |
run: rustup show | |
- name: cargo check | |
run: > | |
cargo check | |
--manifest-path parachain/Cargo.toml | |
--workspace | |
--features runtime-benchmarks | |
- name: clippy | |
run: cargo clippy --manifest-path parachain/Cargo.toml -- -D warnings | |
test: | |
needs: check | |
runs-on: snowbridge-runner | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: -C debuginfo=1 | |
SKIP_WASM_BUILD: 1 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.head_ref }} | |
submodules: 'true' | |
- uses: actions/cache@v1 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: ${{ runner.os }}-cargo-${{ hashFiles('parachain/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: setup rust toolchain | |
run: rustup show | |
# Increase stack limit for beacon light client tests | |
- run: sudo prlimit --pid $$ --stack=32768 | |
# Run tests for everything except the beacon light client | |
- name: Tests for everything except the beacon light client | |
run: > | |
cargo test | |
--manifest-path parachain/Cargo.toml | |
--workspace | |
--features runtime-benchmarks | |
--exclude snowbridge-ethereum-beacon-client | |
# Run tests for beacon light client, excluding benchmark tests | |
- name: Tests for beacon light client excluding benchmark tests | |
run: > | |
cargo test | |
--manifest-path parachain/Cargo.toml | |
--package snowbridge-ethereum-beacon-client | |
# Run benchmark tests for beacon light client | |
- name: Benchmark tests for beacon light client | |
run: > | |
cargo test | |
--manifest-path parachain/Cargo.toml | |
--release | |
--features runtime-benchmarks | |
--package snowbridge-ethereum-beacon-client | |
coverage: | |
needs: check | |
runs-on: snowbridge-runner | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: -C debuginfo=1 | |
SKIP_WASM_BUILD: 1 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.head_ref }} | |
submodules: 'true' | |
- name: setup rust toolchain | |
run: rustup show | |
- name: run coverage test | |
run: > | |
cargo install cargo-tarpaulin && | |
cargo tarpaulin | |
--manifest-path parachain/Cargo.toml | |
--workspace | |
--engine llvm | |
--out Xml | |
--exclude substrate-call-index | |
- name: Upload coverage reports to Codecov with GitHub Action | |
uses: codecov/codecov-action@v3 | |
with: | |
working-directory: parachain | |
files: cobertura.xml | |
flags: rust | |
check-cumulus-bridgehub: | |
runs-on: snowbridge-runner | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- uses: arduino/setup-protoc@v2 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: setup rust toolchain | |
run: rustup show | |
- name: check bridge-hub runtime | |
run: > | |
cargo check | |
--manifest-path polkadot-sdk/Cargo.toml | |
--release --verbose | |
--package bridge-hub-rococo-runtime | |
beacon-fuzz: | |
needs: test | |
runs-on: snowbridge-runner | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: -C debuginfo=1 | |
SKIP_WASM_BUILD: 1 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.head_ref }} | |
submodules: 'true' | |
- uses: actions/cache@v1 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
key: ${{ runner.os }}-cargo-${{ hashFiles('parachain/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo- | |
- name: install nightly | |
run: rustup install --profile minimal nightly-$RUST_NIGHTLY | |
- name: Install cargo-fuzz from crates.io | |
uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-fuzz | |
version: "^0.11.2" | |
- name: Fuzz force checkpoint extrinsic | |
run: > | |
cd parachain/pallets/ethereum-beacon-client && cargo +nightly-$RUST_NIGHTLY fuzz run fuzz_force_checkpoint -- | |
-max_len=$FUZZ_MAX_LEN -runs=$FUZZ_MAX_RUNS | |
- name: Fuzz submit extrinsic | |
run: > | |
cd parachain/pallets/ethereum-beacon-client && cargo +nightly-$RUST_NIGHTLY fuzz run fuzz_submit -- | |
-max_len=$FUZZ_MAX_LEN -runs=$FUZZ_MAX_RUNS | |
- name: Fuzz submit execution header extrinsic | |
run: > | |
cd parachain/pallets/ethereum-beacon-client && cargo +nightly-$RUST_NIGHTLY fuzz run fuzz_submit_execution_header -- | |
-max_len=$FUZZ_MAX_LEN -runs=$FUZZ_MAX_RUNS |