Skip to content

Improve ABI parsing #187

Improve ABI parsing

Improve ABI parsing #187

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
REVIVE_DEV_NODE_VERSION: 20311a9465b9ea0e28edd480cbfce8c3daa6b903
CI_UNIFIED_IMAGE: "docker.io/paritytech/ci-unified:bullseye-1.93.0-2026-01-27-v202602020922"
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.92
components: rustfmt, clippy, rust-src
- name: Install solc
run: |
SOLC_VERSION=0.8.26
curl -L https://github.com/ethereum/solidity/releases/download/v${SOLC_VERSION}/solc-static-linux \
-o solc
chmod +x solc
sudo mv solc /usr/local/bin/solc
- name: Install anvil-polkadot
run: |
export FOUNDRY_DIR="$HOME/.foundry"
curl -L https://raw.githubusercontent.com/paritytech/foundry-polkadot/refs/heads/master/foundryup/install | bash
"$FOUNDRY_DIR/bin/foundryup-polkadot"
echo "$FOUNDRY_DIR/bin" >> $GITHUB_PATH
- name: Install Rust nightly for scaffold tests
run: |
rustup toolchain install nightly-2026-02-01 --component rust-src --profile minimal
- name: Run formatting check
run: cargo fmt --check
- name: Run clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- name: Run unit tests (types + macros)
run: cargo test -p pvm-contract-types --features alloc && cargo test -p pvm-contract-macros
- name: Run integration tests
run: cargo test -p cargo-pvm-contract -- --test-threads=1
- name: Cache revive-dev-node
id: cache-dev-node
uses: actions/cache@v4
with:
path: revive-dev-node
key: revive-dev-node-${{ env.REVIVE_DEV_NODE_VERSION }}
- name: Build revive-dev-node
if: steps.cache-dev-node.outputs.cache-hit != 'true'
run: |
docker run --rm -v $GITHUB_WORKSPACE:/output -w /build $CI_UNIFIED_IMAGE bash -c "
git init . &&
git remote add origin https://github.com/paritytech/polkadot-sdk.git &&
git fetch --depth 1 origin $REVIVE_DEV_NODE_VERSION &&
git checkout FETCH_HEAD &&
cargo build -p revive-dev-node --release &&
cp target/release/revive-dev-node /output/
"
- name: Install revive-dev-node
run: sudo install revive-dev-node /usr/local/bin/
- name: Build cargo-pvm-contract binary
run: cargo build -p cargo-pvm-contract
- name: Run e2e tests
run: cargo test -p pvm-contract-e2e-tests -- --test-threads=1
check-examples:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.92
components: rust-src
- name: Install Rust nightly for example build
run: |
rustup toolchain install nightly-2026-02-01 --component rust-src --profile minimal
- name: Install solc
run: |
SOLC_VERSION=0.8.26
curl -L https://github.com/ethereum/solidity/releases/download/v${SOLC_VERSION}/solc-static-linux \
-o solc
chmod +x solc
sudo mv solc /usr/local/bin/solc
- name: Build example project
working-directory: examples/example-mytoken
run: env -u CARGO -u RUSTUP_TOOLCHAIN cargo build --release