Skip to content

Commit

Permalink
Add a zombienet smoke test (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
rzadp authored Aug 16, 2024
1 parent c12e6b9 commit b5f6adc
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 28 deletions.
1 change: 0 additions & 1 deletion .github/actions/ubuntu-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ runs:
using: "composite"
steps:
- name: Rust compilation prerequisites (Ubuntu)
if: contains(matrix.os, 'ubuntu')
run: |
sudo apt update
sudo apt install -y \
Expand Down
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
31 changes: 4 additions & 27 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,35 +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 &
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
timeout-minutes: 5
./target/debug/parachain-template-node --help
build-docker:
runs-on: ubuntu-latest
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/test-zombienet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
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: ubuntu-latest
env:
POLKADOT_VERSION: stable2407
steps:
- uses: actions/checkout@v4

- uses: ./.github/actions/free-disk-space
- uses: ./.github/actions/ubuntu-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 b5f6adc

Please sign in to comment.