Staking V3 #1598
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Checks | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- "**.rs" | |
- "**.toml" | |
- "**.lock" | |
- "**.ts" | |
- "**.yml" | |
- "**.sol" | |
pull_request: | |
types: [opened, synchronize, ready_for_review] | |
branches: | |
- main | |
paths: | |
- "**.rs" | |
- "**.toml" | |
- "**.lock" | |
- "**.ts" | |
- "**.yml" | |
- "**.sol" | |
env: | |
CACHE_VERSION: 1 | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: full | |
jobs: | |
basic-checks: | |
name: Task ${{ matrix.action }} darwinia | |
if: github.event_name == 'push' || !github.event.pull_request.draft | |
needs: [features-checks] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
action: [build, test] | |
steps: | |
- name: Free disk space | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: true | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: false | |
docker-images: true | |
swap-storage: false | |
- name: Set swap space | |
uses: pierotofy/set-swap-space@master | |
with: | |
swap-size-gb: 8 | |
- name: Fetch latest code | |
uses: actions/checkout@v4 | |
- name: Setup build environment | |
run: sudo apt install -y clang llvm protobuf-compiler | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
with: | |
path: | | |
./target | |
key: ${{ matrix.action }}-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('rust-toolchain.toml') }}-${{ hashFiles('Cargo.lock') }} | |
restore-keys: | | |
${{ matrix.action }}-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('rust-toolchain.toml') }}- | |
${{ matrix.action }}-${{ env.CACHE_VERSION }}-${{ runner.os }}- | |
- name: Action ${{ matrix.action }} | |
if: matrix.action == 'build' | |
run: cargo b --locked -p darwinia --features all-runtime,evm-tracing --profile ci-dev | |
- name: Action ${{ matrix.action }} | |
if: matrix.action == 'test' | |
run: SKIP_WASM_BUILD=1 cargo t --locked --features all-runtime,runtime-benchmarks --profile ci-dev | |
- name: Configure artifacts | |
if: matrix.action == 'build' | |
run: | | |
mv target/ci-dev/darwinia . | |
.github/shrink-cache.sh | |
- name: Upload | |
if: matrix.action == 'build' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: darwinia | |
path: darwinia | |
retention-days: 1 | |
format-checks: | |
name: Task check format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch latest code | |
uses: actions/checkout@v4 | |
- name: Install nightly Rust | |
run: rustup toolchain install nightly && rustup component add rustfmt --toolchain nightly | |
- name: Check format | |
run: cargo +nightly fmt --all -- --check | |
- name: Fast fail | |
uses: vishnudxb/cancel-workflow@v1.2 | |
if: failure() | |
with: | |
repo: darwinia-network/darwinia | |
workflow_id: ${{ github.run_id }} | |
access_token: ${{ github.token }} | |
features-checks: | |
name: Task check features | |
if: github.event_name == 'push' || !github.event.pull_request.draft | |
strategy: | |
matrix: | |
runtime: [runtime/darwinia, runtime/crab, runtime/koi] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch latest code | |
uses: actions/checkout@v4 | |
- name: Check | |
uses: hack-ink/cargo-featalign-action@v0.1.1 | |
with: | |
crate: ${{ matrix.runtime }} | |
features: std,runtime-benchmarks,try-runtime | |
default-std: true | |
runtime-checks: | |
name: Task check runtimes | |
if: github.event_name == 'push' || !github.event.pull_request.draft | |
strategy: | |
matrix: | |
target: | |
[ | |
{ | |
chain: darwinia-dev, | |
compare-with: "https://darwinia-rpc.darwiniacommunitydao.xyz", | |
}, | |
{ | |
chain: crab-dev, | |
compare-with: "https://crab-rpc.darwiniacommunitydao.xyz", | |
}, | |
{ | |
chain: koi-dev, | |
compare-with: "https://koi-rpc.darwinia.network", | |
}, | |
] | |
needs: [basic-checks] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check ${{ matrix.target.chain }} | |
uses: hack-ink/subalfred-check-runtime-action@v0.2.1 | |
with: | |
uploaded-artifact: darwinia | |
chain: ${{ matrix.target.chain }} | |
compare-with: ${{ matrix.target.compare-with }} | |
evm-checks: | |
name: Task check EVM | |
if: github.event_name == 'push' || !github.event.pull_request.draft | |
needs: [basic-checks] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download darwinia | |
uses: actions/download-artifact@v4 | |
with: | |
name: darwinia | |
- name: Install darwinia | |
run: | | |
chmod u+x darwinia | |
sudo mv darwinia /usr/bin | |
- name: Launch darwinia | |
run: darwinia --chain koi-dev --tmp --alice --tracing-api debug,trace --frontier-backend-type sql & | |
- name: Install Node 19 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 19 | |
- name: Fetch latest code | |
uses: actions/checkout@v4 | |
- name: Action test | |
run: | | |
cd tests/ethereum | |
npm install | |
npm run test |