Skip to content

Upgrade to Polkadot SDK #2571

Upgrade to Polkadot SDK

Upgrade to Polkadot SDK #2571

Workflow file for this run

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