Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a zombienet smoke test #17

Merged
merged 5 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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