Skip to content

Commit

Permalink
Add a zombienet smoke test
Browse files Browse the repository at this point in the history
  • Loading branch information
rzadp committed Aug 14, 2024
1 parent c12e6b9 commit 7e223e7
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 23 deletions.
22 changes: 22 additions & 0 deletions .github/tests/zombienet-smoke-test.zndsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Description: Smoke test of the network
Network: ../../zombienet.toml
Creds: config

alice: is up
bob: is up
charlie: is up

alice: log line matches "Imported #[0-9]+" within 20 seconds
bob: log line matches "Imported #[0-9]+" within 20 seconds

alice: parachain 1000 is registered within 60 seconds
alice: parachain 1000 block height is at least 10 within 200 seconds

alice: count of log lines matching "err=" is 0 within 10 seconds
alice: count of log lines matching "Error" is 0 within 10 seconds

bob: count of log lines matching "err=" is 0 within 10 seconds
bob: count of log lines matching "Error" is 0 within 10 seconds

charlie: count of log lines matching "err=" is 0 within 10 seconds
charlie: count of log lines matching "Error" is 0 within 10 seconds
27 changes: 4 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ concurrency:
cancel-in-progress: true

jobs:
build:
ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
Expand Down Expand Up @@ -45,31 +45,12 @@ jobs:
run: SKIP_WASM_BUILD=1 cargo doc --workspace --no-deps
timeout-minutes: 15

run-node:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4

- if: contains(matrix.os, 'ubuntu')
uses: ./.github/actions/free-disk-space
- if: contains(matrix.os, 'ubuntu')
uses: ./.github/actions/ubuntu-dependencies
- if: contains(matrix.os, 'macos')
uses: ./.github/actions/macos-dependencies

- name: Build the node individually in release mode
run: cargo build --package parachain-template-node --release
timeout-minutes: 90

# This test only makes sure the node got successfully built
# and can be executed without issues.
# A test including a relaychain will be done separately.
# and can be executed without issues on Ubuntu and macOS.
# Check the `test-zombienet` workflow for a parachain smoke test.
- name: Check that the node starts up
run: |
./target/release/parachain-template-node --dev 2>&1 | tee out.txt &
./target/debug/parachain-template-node --dev 2>&1 | tee out.txt &
until curl -s '127.0.0.1:9944'; do sleep 5; done
until cat out.txt | grep -s "💤 Idle"; do sleep 5; done
shell: bash
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/test-zombienet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Test Zombienet

on:
pull_request:
push:
branches:
- main
- master

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
test-zombienet:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
env:
POLKADOT_VERSION: stable2407
steps:
- uses: actions/checkout@v4

- if: contains(matrix.os, 'ubuntu')
uses: ./.github/actions/free-disk-space
- if: contains(matrix.os, 'ubuntu')
uses: ./.github/actions/ubuntu-dependencies
- if: contains(matrix.os, 'macos')
uses: ./.github/actions/macos-dependencies

- name: Build the node individually in release mode
run: cargo build --package parachain-template-node --release
timeout-minutes: 90

- name: Download relaychain binaries
run: |
wget --no-verbose https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-${{ env.POLKADOT_VERSION }}/polkadot
wget --no-verbose https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-${{ env.POLKADOT_VERSION }}/polkadot-prepare-worker
wget --no-verbose https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-${{ env.POLKADOT_VERSION }}/polkadot-execute-worker
chmod +x ./polkadot*
working-directory: ./target/release

- name: Run zombienet tests
run: |
export PATH="./target/release:$PATH"
npx --yes @zombienet/cli --provider native test .github/tests/zombienet-smoke-test.zndsl
shell: bash
timeout-minutes: 10

0 comments on commit 7e223e7

Please sign in to comment.