Skip to content

feat: StdResult (de)serializer #510

feat: StdResult (de)serializer

feat: StdResult (de)serializer #510

Workflow file for this run

name: Tests
on:
push:
branches:
- main
- 0.[0-9]+
pull_request:
jobs:
package_crypto:
name: package_crypto
runs-on: ubuntu-latest
env:
working-directory: ./packages/crypto
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-package_crypto-rust:1.60.0-${{ hashFiles('Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Build
working-directory: ${{env.working-directory}}
run: cargo build --locked
- name: Run tests
working-directory: ${{env.working-directory}}
run: cargo test --locked
package_derive:
name: package_derive
runs-on: ubuntu-latest
env:
working-directory: ./packages/derive
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-package_derive-rust:1.60.0-${{ hashFiles('Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Build
working-directory: ${{env.working-directory}}
run: cargo build --locked
- name: Run tests
working-directory: ${{env.working-directory}}
run: cargo test --locked
package_schema:
name: package_schema
runs-on: ubuntu-latest
env:
working-directory: ./packages/schema
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-package_schema-rust:1.60.0-${{ hashFiles('Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Build
working-directory: ${{env.working-directory}}
run: cargo build --locked
- name: Run tests
working-directory: ${{env.working-directory}}
run: cargo test --locked
package_std:
name: package_std
runs-on: ubuntu-latest
env:
working-directory: ./packages/std
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-package_std-rust:1.60.0-${{ hashFiles('Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build library for native target (no features)
working-directory: ${{env.working-directory}}
run: cargo build --locked --no-default-features
- name: Build library for wasm target (no features)
working-directory: ${{env.working-directory}}
run: cargo wasm --locked --no-default-features
- name: Run unit tests (no features)
working-directory: ${{env.working-directory}}
run: cargo test --locked --no-default-features
- name: Build library for native target (all features)
working-directory: ${{env.working-directory}}
run: cargo build --locked --features iterator,staking,stargate
- name: Build library for wasm target (all features)
working-directory: ${{env.working-directory}}
run: cargo wasm --locked --features iterator,staking,stargate
- name: Run unit tests (all features)
working-directory: ${{env.working-directory}}
run: cargo test --locked --features iterator,staking,stargate
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
package_storage:
name: package_storage
runs-on: ubuntu-latest
env:
working-directory: ./packages/storage
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-package_storage-rust:1.60.0-${{ hashFiles('Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Build library for native target
working-directory: ${{env.working-directory}}
run: cargo build --locked
- name: Run unit tests
working-directory: ${{env.working-directory}}
run: cargo test --locked
- name: Run unit tests (with iterator support)
working-directory: ${{env.working-directory}}
run: cargo test --locked --features iterator
package_vm:
name: package_vm
runs-on: ubuntu-latest
env:
working-directory: ./packages/vm
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-package_vm-rust:1.60.0-${{ hashFiles('Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Build
working-directory: ${{env.working-directory}}
run: cargo build --locked
- name: Build with all features
working-directory: ${{env.working-directory}}
run: cargo build --locked --features iterator,staking,stargate
- name: Test
working-directory: ${{env.working-directory}}
run: cargo test --locked
- name: Test with all features
working-directory: ${{env.working-directory}}
run: cargo test --locked --features iterator,staking,stargate
contract_burner:
name: contract_burner
runs-on: ubuntu-latest
env:
working-directory: ./contracts/burner
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_burner-rust:1.60.0-${{ hashFiles('contracts/burner/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_crypto_verify:
name: contract_crypto_verify
runs-on: ubuntu-latest
env:
working-directory: ./contracts/crypto-verify
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_crypto_verify-rust:1.60.0-${{ hashFiles('contracts/crypto-verify/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_hackatom:
name: contract_hackatom
runs-on: ubuntu-latest
env:
working-directory: ./contracts/hackatom
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_hackatom-rust:1.60.0-${{ hashFiles('contracts/hackatom/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_ibc_reflect:
name: contract_ibc_reflect
runs-on: ubuntu-latest
env:
working-directory: ./contracts/ibc-reflect
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_ibc_reflect-rust:1.60.0-${{ hashFiles('contracts/ibc-reflect/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_ibc_reflect_send:
name: contract_ibc_reflect_send
runs-on: ubuntu-latest
env:
working-directory: ./contracts/ibc-reflect-send
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_ibc_reflect_send-rust:1.60.0-${{ hashFiles('contracts/ibc-reflect-send/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_queue:
name: contract_queue
runs-on: ubuntu-latest
env:
working-directory: ./contracts/queue
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_queue-rust:1.60.0-${{ hashFiles('contracts/queue/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_query_queue:
name: contract_query_queue
runs-on: ubuntu-latest
env:
working-directory: ./contracts/query-queue
queue-directory: ./contracts/queue
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_query_queue-rust:1.60.0-${{ hashFiles('contracts/queue/Cargo.lock', 'contracts/query-queue/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Build queue wasm binary for integration tests
working-directory: ${{env.queue-directory}}
run: cargo wasm --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_reflect:
name: contract_reflect
runs-on: ubuntu-latest
env:
working-directory: ./contracts/reflect
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_reflect-rust:1.60.0-${{ hashFiles('contracts/reflect/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_staking:
name: contract_staking
runs-on: ubuntu-latest
env:
working-directory: ./contracts/staking
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_staking-rust:1.60.0-${{ hashFiles('contracts/staking/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_voting_with_uuid:
name: contract_voting_with_uuid
runs-on: ubuntu-latest
env:
working-directory: ./contracts/voting-with-uuid
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-contract_staking-rust:1.60.0-${{ hashFiles('contracts/voting-with-uuid/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test-for-ci --locked --no-default-features
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_dynamic_callee_contract:
name: dynamic_callee_contract
runs-on: ubuntu-latest
env:
working-directory: ./contracts/dynamic-callee-contract
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_dynamic_callee_contract-rust:1.60.0-${{ hashFiles('contracts/dynamic-callee-contract/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test --locked
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_dynamic_caller_contract:
name: dynamic_caller_contract
runs-on: ubuntu-latest
env:
working-directory: ./contracts/dynamic-caller-contract
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_dynamic_caller_contract-rust:1.60.0-${{ hashFiles('contracts/dynamic-caller-contract/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test --locked
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_number:
name: contract_number
runs-on: ubuntu-latest
env:
working-directory: ./contracts/number
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_number-rust:1.60.0-${{ hashFiles('contracts/number/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test --locked
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_call_number:
name: contract_call_number
runs-on: ubuntu-latest
env:
working-directory: ./contracts/call-number
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_call_number-rust:1.60.0-${{ hashFiles('contracts/call-number/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_simple_callee:
name: contract_simple_callee
runs-on: ubuntu-latest
env:
working-directory: ./contracts/simple-callee
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_simple_callee-rust:1.60.0-${{ hashFiles('contracts/simple-callee/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test --locked
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_intermediate_number:
name: contract_intermediate_number
runs-on: ubuntu-latest
env:
working-directory: ./contracts/intermediate-number
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_intermediate_number-rust:1.60.0-${{ hashFiles('contracts/intermediate-number/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test --locked
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
contract_events:
name: contract_events
runs-on: ubuntu-latest
env:
working-directory: ./contracts/events
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v2
with:
path: ~/.cargo
key: cargocache-v2-contract_events-rust:1.60.0-${{ hashFiles('contracts/events/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add wasm32 target
run: rustup target add wasm32-unknown-unknown && rustup target list --installed
- name: Build wasm binary
working-directory: ${{env.working-directory}}
run: cargo wasm --locked
- name: Unit tests
working-directory: ${{env.working-directory}}
run: cargo unit-test --locked
- name: Integration tests (singlepass backend)
working-directory: ${{env.working-directory}}
run: cargo integration-test --locked --no-default-features
- name: Documentation tests
working-directory: ${{env.working-directory}}
run: cargo doc-test --locked
- name: Build and run schema generator
working-directory: ${{env.working-directory}}
run: cargo schema --locked
- name: Ensure schemas are up-to-date
working-directory: ${{env.working-directory}}
run: |
CHANGES_IN_REPO=$(git status --porcelain)
if [[ -n "$CHANGES_IN_REPO" ]]; then
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
git status && git --no-pager diff
exit 1
fi
fmt:
name: fmt
runs-on: ubuntu-latest
env:
root-directory: ./contracts
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-fmt-rust:1.60.0-${{ hashFiles('Cargo.lock', 'contracts/*/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add rustfmt component
run: rustup component add rustfmt
- name: Check formatting of workspace
run: cargo fmt -- --check
- name: Check formatting of contract burner
working-directory: ${{env.root-directory}}/burner
run: cargo fmt -- --check
- name: Check formatting of contract crypto-verify
working-directory: ${{env.root-directory}}/crypto-verify
run: cargo fmt -- --check
- name: Check formatting of contract hackatom
working-directory: ${{env.root-directory}}/hackatom
run: cargo fmt -- --check
- name: Check formatting of contract reflect
working-directory: ${{env.root-directory}}/reflect
run: cargo fmt -- --check
- name: Check formatting of contract queue
working-directory: ${{env.root-directory}}/queue
run: cargo fmt -- --check
- name: Check formatting of contract query-queue
working-directory: ${{env.root-directory}}/query-queue
run: cargo fmt -- --check
- name: Check formatting of contract staking
working-directory: ${{env.root-directory}}/staking
run: cargo fmt -- --check
- name: Check formatting of contract floaty
working-directory: ${{env.root-directory}}/floaty
run: cargo fmt -- --check
- name: Check formatting of contract dynamic callee contract
working-directory: ${{env.root-directory}}/dynamic-callee-contract
run: cargo fmt -- --check
- name: Check formatting of contract dynamic caller contract
working-directory: ${{env.root-directory}}/dynamic-caller-contract
run: cargo fmt -- --check
- name: Check formatting of contract number
working-directory: ${{env.root-directory}}/number
run: cargo fmt -- --check
- name: Check formatting of contract intermediate-number
working-directory: ${{env.root-directory}}/intermediate-number
run: cargo fmt -- --check
- name: Check formatting of contract call number
working-directory: ${{env.root-directory}}/call-number
run: cargo fmt -- --check
- name: Check formatting of contract events
working-directory: ${{env.root-directory}}/events
run: cargo fmt -- --check
- name: Check formatting of contract voting with uuid
working-directory: ${{env.root-directory}}/voting-with-uuid
run: cargo fmt -- --check
- name: Check formatting of contract ibc reflect
working-directory: ${{env.root-directory}}/ibc-reflect
run: cargo fmt -- --check
- name: Check formatting of contract ibc reflect send
working-directory: ${{env.root-directory}}/ibc-reflect-send
run: cargo fmt -- --check
- name: Check formatting of contract simple callee
working-directory: ${{env.root-directory}}/simple-callee
run: cargo fmt -- --check
clippy:
name: clippy
runs-on: ubuntu-latest
env:
packages: ./packages
contracts: ./contracts
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.60.0
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Cache cargo
uses: actions/cache@v3
with:
path: ~/.cargo
key: cargocache-v2-clippy-rust:1.60.0-${{ hashFiles('Cargo.lock', 'contracts/*/Cargo.lock') }}
- name: Version information
run: rustc --version; cargo --version; rustup --version; rustup target list --installed
- name: Add clippy component
run: rustup component add clippy
#
# Workspace packages
#
- name: Clippy linting on schema
working-directory: ${{env.packages}}/schema
run: cargo clippy -- -D warnings
- name: Clippy linting on std (no feature flags)
working-directory: ${{env.packages}}/std
run: cargo clippy -- -D warnings
- name: Clippy linting on std (all feature flags)
working-directory: ${{env.packages}}/std
run: cargo clippy --features iterator,staking -- -D warnings
- name: Clippy linting on storage (no feature flags)
working-directory: ${{env.packages}}/storage
run: cargo clippy -- -D warnings
- name: Clippy linting on storage (all feature flags)
working-directory: ${{env.packages}}/storage
run: cargo clippy --features iterator -- -D warnings
- name: Clippy linting on vm (no feature flags)
working-directory: ${{env.packages}}/vm
run: cargo clippy --no-default-features -- -D warnings
- name: Clippy linting on vm (all feature flags)
working-directory: ${{env.packages}}/vm
run: cargo clippy --features iterator,staking,stargate -- -D warnings
#
# Contracts
#
- name: Clippy linting on burner
working-directory: ${{env.contracts}}/burner
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/burner.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on crypto-verify
working-directory: ${{env.contracts}}/crypto-verify
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/crypto_verify.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on hackatom
working-directory: ${{env.contracts}}/hackatom
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/hackatom.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on ibc-reflect
working-directory: ${{env.contracts}}/ibc-reflect
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/ibc_reflect.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on ibc-reflect-send
working-directory: ${{env.contracts}}/ibc-reflect-send
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/ibc_reflect_send.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on queue
working-directory: ${{env.contracts}}/queue
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/queue.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on query-queue
working-directory: ${{env.contracts}}/query-queue
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/query_queue.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on reflect
working-directory: ${{env.contracts}}/reflect
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/reflect.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on staking
working-directory: ${{env.contracts}}/staking
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/staking.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on dynamic-callee-contract
working-directory: ${{env.contracts}}/dynamic-callee-contract
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/dynamic_callee_contract.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on dynamic-caller-contract
working-directory: ${{env.contracts}}/dynamic-caller-contract
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/dynamic_caller_contract.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on number
working-directory: ${{env.contracts}}/number
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/number.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on intermediate-number
working-directory: ${{env.contracts}}/intermediate-number
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/intermediate_number.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on call-number
working-directory: ${{env.contracts}}/call-number
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/call_number.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on cyberpunk
working-directory: ${{env.contracts}}/cyberpunk
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/cyberpunk.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on events
working-directory: ${{env.contracts}}/events
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/events.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on floaty
working-directory: ${{env.contracts}}/floaty
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/floaty.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on simple-callee
working-directory: ${{env.contracts}}/simple-callee
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/simple_callee.wasm
cargo clippy --tests -- -D warnings
- name: Clippy linting on voting-with-uuid
working-directory: ${{env.contracts}}/voting-with-uuid
run: |
mkdir -p target/wasm32-unknown-unknown/release
touch target/wasm32-unknown-unknown/release/cw_voting_with_uuid.wasm
cargo clippy --tests -- -D warnings