Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Add CI job for checking missing migrations and fix the missing PolkadotXcm migration for ajuna #1473

Add CI job for checking missing migrations and fix the missing PolkadotXcm migration for ajuna

Add CI job for checking missing migrations and fix the missing PolkadotXcm migration for ajuna #1473

name: Build
on:
pull_request:
branches:
- develop
- ajuna-stable
paths:
- "**/*.rs"
- "**/Cargo.toml"
- "**/Cargo.lock"
- "rust-toolchain.toml"
- "rustfmt.toml"
- ".github/workflows/*.yml"
push:
branches:
- develop
- ajuna-stable
# Ensures only one build is run per branch, unless pushing to develop
concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/develop' && github.run_number || github.ref }}
cancel-in-progress: true
env:
CARGO_ARGS: ${{ github.ref == 'refs/heads/develop' && '--release' || '' }}
CARGO_TERM_COLOR: always
SKIP_WASM_BUILD: 1
jobs:
fmt:
if: ${{ !startsWith(github.head_ref, 'release/') }}
name: Rustfmt
runs-on: ubuntu-latest
continue-on-error: false
steps:
- uses: actions/checkout@v3
- run: cargo fmt --all -- --check
lint:
if: ${{ !startsWith(github.head_ref, 'release/') }}
name: Clippy
runs-on: ubuntu-latest
continue-on-error: false
steps:
- uses: actions/checkout@v3
- run: ./.github/scripts/free_disk_space.sh
- run: sudo apt-get install -y protobuf-compiler
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-lint-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-lint-
- run: cargo clippy --all-features --all-targets ${{ env.CARGO_ARGS }} -- -D warnings
test-pallets:
if: ${{ !startsWith(github.head_ref, 'release/') }}
name: Test-Pallets
runs-on: ubuntu-latest
continue-on-error: false
strategy:
matrix:
pallet:
- pallet-ajuna-awesome-avatars
- pallet-ajuna-awesome-avatars-benchmarking
- pallet-ajuna-nft-staking
- pallet-ajuna-nft-staking-benchmarking
- pallet-ajuna-nft-transfer
steps:
- uses: actions/checkout@v3
- run: ./.github/scripts/free_disk_space.sh
- run: sudo apt-get install -y protobuf-compiler
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-${{ matrix.pallet }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-test-${{ matrix.pallet }}-
- run: cargo test --all-features --all-targets ${{ env.CARGO_ARGS }} -p ${{ matrix.pallet }}
test-runtime:
if: ${{ !startsWith(github.head_ref, 'release/') }}
name: Test-Runtime
runs-on: ubuntu-latest
continue-on-error: false
strategy:
matrix:
runtime:
- ajuna-solo-runtime
- ajuna-runtime
- bajun-runtime
steps:
- uses: actions/checkout@v3
- run: ./.github/scripts/free_disk_space.sh
- run: sudo apt-get install -y protobuf-compiler
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-test-${{ matrix.runtime }}-
- run: cargo test --all-features --all-targets ${{ env.CARGO_ARGS }} -p ${{ matrix.runtime }}
test-full:
if: github.ref == 'refs/heads/develop'
name: Test-Full
runs-on: ubuntu-latest
continue-on-error: false
steps:
- uses: actions/checkout@v3
- run: ./.github/scripts/free_disk_space.sh
- run: sudo apt-get install -y protobuf-compiler
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-full-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-test-full-
- run: cargo test --workspace --all-features --all-targets ${{ env.CARGO_ARGS }}
coverage:
if: ${{ !startsWith(github.head_ref, 'release/') }}
name: Coverage
runs-on: ubuntu-latest
container:
image: xd009642/tarpaulin:0.22.0
options: --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v3
- name: Generate code coverage
run: |
cargo tarpaulin --timeout 120 --no-fail-fast --workspace --out Xml \
--exclude \
ajuna-cli ajuna-node ajuna-primitives ajuna-rpc ajuna-service \
ajuna-runtime ajuna-solo-runtime bajun-runtime \
pallet-ajuna-awesome-avatars-benchmarking \
pallet-ajuna-nft-staking-benchmarking \
--exclude-files \
node/* rpc/* runtime/* \
pallets/ajuna-awesome-avatars/benchmarking/* \
pallets/ajuna-nft-staking-benchmarking/* \
benchmarking.rs weights.rs
- name: Upload to codecov.io
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true