Skip to content

Feature: Versioned package substates #10747

Feature: Versioned package substates

Feature: Versioned package substates #10747

Workflow file for this run

name: CI
on:
push:
branches:
- main
- develop
- docs
- alphanet
- betanet
- release\/*
pull_request:
# Run on PR against any branch
env:
CARGO_TERM_COLOR: always
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
check-code-format:
name: Check code format
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Check format
run: bash ./check.sh
sbor-unit-tests:
name: Run SBOR unit tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Run tests
run: cargo test
working-directory: sbor
- name: Run tests (no_std)
run: cargo test --no-default-features --features alloc
working-directory: sbor
- name: Run derive tests
run: cargo test
working-directory: sbor-derive-common
sbor-integration-tests:
name: Run SBOR integration tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Run tests
run: cargo test
working-directory: sbor-tests
- name: Run tests (no_std)
run: cargo test --no-default-features --features alloc
working-directory: sbor-tests
- name: Run bench
run: cargo bench
working-directory: sbor-tests
scrypto-unit-tests:
name: Run Scrypto unit tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Run tests
run: cargo test
working-directory: scrypto
- name: Run tests (no_std)
run: cargo test --no-default-features --features alloc
working-directory: scrypto
- name: Run abi tests
run: cargo test
working-directory: scrypto-schema
- name: Run derive tests
run: cargo test
working-directory: scrypto-derive
scrypto-integration-tests:
name: Run Scrypto integration tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Run tests
run: cargo test
working-directory: scrypto-tests
- name: Run tests with no_std
run: cargo test --no-default-features --features alloc
working-directory: scrypto-tests
scrypto-examples:
name: Run Scrypto examples
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Add wasm target (nightly)
run: rustup +nightly target add wasm32-unknown-unknown
- name: Build faucet
run: cargo build --target wasm32-unknown-unknown --release
working-directory: assets/blueprints/faucet
- name: Build radiswap
run: cargo build --target wasm32-unknown-unknown --release
working-directory: assets/blueprints/radiswap
- name: Build no-std
run: cargo build --target wasm32-unknown-unknown --release
working-directory: examples/no-std
- name: Build and test hello-world
run: cargo build --target wasm32-unknown-unknown --release && cargo test --release
working-directory: examples/hello-world
- name: Build and test everything
run: cargo build --target wasm32-unknown-unknown --release && cargo test --release
working-directory: examples/everything
radix-engine-build:
name: Run Radix Engine build (RocksDB)
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Install dependency
run: sudo apt-get -y update && sudo apt-get -y install pkg-config libfreetype6-dev libfontconfig1-dev
- name: Build with resource tracking
run: cargo build --features resource_tracker
- name: Build with rocksdb
run: cargo test -p radix-engine-profiling -p radix-engine-stores --features rocksdb --release --no-run -- --nocapture
- name: Build bench with rocksdb
run: cargo bench --features rocksdb --no-run
radix-engine:
name: Run Radix Engine tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Run tests
run: |
cargo nextest run \
--features serde \
-p radix-engine-common \
-p radix-engine-derive \
-p radix-engine-interface \
-p radix-engine \
-p radix-engine-tests
./check_stack_usage.sh
radix-engine-release:
# Run tests in release variant.
# We are particularly interested with the flags:
# - debug-assertions,
# - overflow-checks
# which are false for release variant
name: Run Radix Engine tests (release)
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Run tests
run: |
cargo nextest run \
--release \
--features serde \
-p radix-engine-common \
-p radix-engine-derive \
-p radix-engine-interface \
-p radix-engine \
-p radix-engine-tests
./check_stack_usage.sh
radix-engine-no-std:
name: Run Radix Engine tests (no_std)
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Run tests
run: |
cargo nextest run \
--no-default-features --features alloc \
-p radix-engine \
-p radix-engine-tests
radix-engine-wasmer:
name: Run Radix Engine tests (wasmer)
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Run tests
run: |
cargo nextest run \
--features wasmer \
-p radix-engine \
-p radix-engine-tests
radix-engine-bench:
name: Run Radix Engine benchmarks
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Run bench
run: cargo bench
working-directory: radix-engine-tests
radix-engine-common-bench:
name: Run Radix Engine common benchmarks
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Run bench
run: cargo bench
working-directory: radix-engine-common
transaction:
name: Run transaction tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Run tests
run: cargo test
working-directory: transaction
transaction-scenarios:
name: Run transaction scenarios
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.69.0
- name: Run tests
run: cargo test
working-directory: transaction-scenarios
cli-resim-rtmc-rtmd:
name: Run CLI tests (resim & rtmc & rtmd)
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner, windows-latest-16-cores]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- uses: radixdlt/rust-cache@allow_registry_src_caching
with:
prefix-key: ""
shared-key: simulator-debug-${{ runner.os }}
cache-directories: ~/.cargo/registry/src/**/librocksdb-sys-*
workspaces: simulator
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Set LIBCLANG_PATH # See https://github.com/rust-lang/rust-bindgen/issues/1797
if: runner.os == 'Windows'
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
- name: Install dependencies
if: runner.os == 'Windows'
run: choco install llvm -y
- name: Run Unit tests
run: cargo test
working-directory: simulator
- name: Run tests
run: bash ./tests/resim.sh
working-directory: simulator
- name: Run tests
run: bash ./tests/manifest.sh
working-directory: simulator
cli-scrypto:
name: Run CLI tests (scrypto)
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner, windows-latest-16-cores]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- uses: radixdlt/rust-cache@allow_registry_src_caching
with:
prefix-key: ""
shared-key: simulator-debug-${{ runner.os }}
cache-directories: ~/.cargo/registry/src/**/librocksdb-sys-*
workspaces: simulator
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Set LIBCLANG_PATH # See https://github.com/rust-lang/rust-bindgen/issues/1797
if: runner.os == 'Windows'
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
- name: Install dependencies
if: runner.os == 'Windows'
run: choco install llvm -y
- name: Run tests
run: bash ./tests/scrypto.sh
working-directory: simulator
fuzzer-check:
name: Build fuzzer
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [k8s-linux-runner]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.70.0
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Add wasm target
run: rustup target add wasm32-unknown-unknown
- name: Setup AFL
run: bash ./install_afl.sh
working-directory: fuzz-tests
- name: Build simple fuzzer
run: bash ./fuzz.sh simple build
working-directory: fuzz-tests
- name: Build AFL fuzzer
run: bash ./fuzz.sh afl build
working-directory: fuzz-tests
- name: Check fuzzed instructions coverage
run: cargo nextest run test_check_fuzzed_instruction_coverage
working-directory: fuzz-tests