Skip to content

Upgrade srtool action #768

Upgrade srtool action

Upgrade srtool action #768

Workflow file for this run

name: Checks
on:
push:
branches:
- main
paths:
- "**.rs"
- "**.toml"
- "**lock"
- "**.json"
- "**.yml"
pull_request:
types: [opened, synchronize, ready_for_review]
branches:
- main
paths:
- "**.rs"
- "**.ts"
- "**.toml"
- "**lock"
- "**.json"
- "**.yml"
env:
CACHE_VERSION: 0
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@v3
- name: Setup build environment
run: sudo apt install -y clang llvm protobuf-compiler
- name: Cache cargo
uses: actions/cache@v3
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 build --locked -p darwinia --features all-natives,evm-tracing --profile ci-dev
- name: Action ${{ matrix.action }}
if: matrix.action == 'test'
run: SKIP_WASM_BUILD=1 cargo test --locked --features all-natives,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@v2
with:
name: darwinia
path: darwinia
format-checks:
name: Task check format
runs-on: ubuntu-latest
steps:
- name: Fetch latest code
uses: actions/checkout@v3
- name: Check format
run: cargo fmt --all -- --check
- name: Fast fail
uses: vishnudxb/[email protected]
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/pangoro, runtime/pangolin]
runs-on: ubuntu-latest
steps:
- name: Check ${{ matrix.runtime }}
uses: hack-ink/[email protected]
with:
path: ${{ matrix.runtime }}
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://rpc.darwinia-network",
},
{
chain: crab-dev,
compare-with: "https://crab-rpc.darwinia-network",
},
{
chain: pangoro-dev,
compare-with: "https://pangoro-rpc.darwinia.network",
},
{
chain: pangolin-dev,
compare-with: "https://pangolin-rpc.darwinia.network",
},
]
needs: [basic-checks]
runs-on: ubuntu-latest
steps:
- name: Check ${{ matrix.target.chain }}
uses: hack-ink/[email protected]
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@v2
with:
name: darwinia
- name: Install darwinia
run: |
chmod u+x darwinia
sudo mv darwinia /usr/bin
- name: Launch darwinia
run: darwinia --chain pangolin-dev --tmp --alice --tracing-api debug,trace --frontier-backend-type sql &
- name: Install Node 19
uses: actions/setup-node@v2
with:
node-version: 19
- name: Fetch latest code
uses: actions/checkout@v3
- name: Action test
run: |
cd tests/ethereum
npm install
npm run test
checks-cleaning:
name: Task checks cleaning
if: always()
needs: [features-checks, runtime-checks]
steps:
- name: Clean artifacts
uses: geekyeggo/delete-artifact@v1
with:
name: darwinia
runs-on: ubuntu-latest