Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
[Zombienet] add upgrade test (#5970)
Browse files Browse the repository at this point in the history
* add upgrade test

* fix node names

* changes from feedback

* rename bash script

* fix upgrade node test

* upgrade node test, use env

* bump zombienet version and fix upgrade test

* bump zombienet version

* bump zombienet

* fix raw link for binary

* adjust within time
  • Loading branch information
pepoviola authored Sep 20, 2022
1 parent 7ed7345 commit 9581849
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 1 deletion.
37 changes: 36 additions & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ variables:
CI_IMAGE: "paritytech/ci-linux:production"
DOCKER_OS: "debian:stretch"
ARCH: "x86_64"
ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.2.56"
ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.2.67"
PIPELINE_SCRIPTS_TAG: "v0.4"

default:
Expand Down Expand Up @@ -231,6 +231,9 @@ build-linux-stable:
- echo "Polkadot version = ${VERSION} (EXTRATAG = ${EXTRATAG})"
- echo -n ${VERSION} > ./artifacts/VERSION
- echo -n ${EXTRATAG} > ./artifacts/EXTRATAG
- echo -n ${CI_JOB_ID} > ./artifacts/BUILD_LINUX_JOB_ID
- RELEASE_VERSION=$(./artifacts/polkadot -V | awk '{print $2}'| awk -F "-" '{print $1}')
- echo -n "v${RELEASE_VERSION}" > ./artifacts/BUILD_RELEASE_VERSION
- cp -r scripts/* ./artifacts

test-linux-stable:
Expand Down Expand Up @@ -868,6 +871,38 @@ zombienet-tests-misc-paritydb:
tags:
- zombienet-polkadot-integration-test

zombienet-tests-misc-upgrade-node:
stage: stage3
image: "${ZOMBIENET_IMAGE}"
<<: *kubernetes-env
<<: *zombienet-refs
needs:
- job: publish-polkadot-debug-image
- job: publish-test-collators-image
- job: build-linux-stable
artifacts: true
variables:
GH_DIR: "https://github.com/paritytech/polkadot/tree/${CI_COMMIT_SHORT_SHA}/zombienet_tests/misc"
before_script:
- echo "Zombie-net Tests Config"
- echo "${ZOMBIENET_IMAGE_NAME}"
- echo "${PARACHAINS_IMAGE_NAME} ${PARACHAINS_IMAGE_TAG}"
- echo "${GH_DIR}"
- export DEBUG=zombie,zombie::network-node
- BUILD_RELEASE_VERSION="$(cat ./artifacts/BUILD_RELEASE_VERSION)"
- export ZOMBIENET_INTEGRATION_TEST_IMAGE="docker.io/parity/polkadot:${BUILD_RELEASE_VERSION}"
- export COL_IMAGE=${COLLATOR_IMAGE_NAME}:${COLLATOR_IMAGE_TAG}
- BUILD_LINUX_JOB_ID="$(cat ./artifacts/BUILD_LINUX_JOB_ID)"
- export POLKADOT_PR_BIN_URL="https://gitlab.parity.io/parity/mirrors/polkadot/-/jobs/${BUILD_LINUX_JOB_ID}/artifacts/raw/artifacts/polkadot"
script:
- /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh
--github-remote-dir="${GH_DIR}"
--test="0002-upgrade-node.feature"
allow_failure: false
retry: 2
tags:
- zombienet-polkadot-integration-test

zombienet-tests-malus-dispute-valid:
stage: stage3
image: "${ZOMBIENET_IMAGE}"
Expand Down
17 changes: 17 additions & 0 deletions zombienet_tests/misc/0002-download-polkadot-from-pr.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash

set -euxo pipefail

echo $@

CFG_DIR=/cfg

# add CFG_DIR as first `looking dir` to allow to overrides commands.
mkdir -p $CFG_DIR
export PATH=$CFG_DIR:$PATH

cd $CFG_DIR
# see 0002-upgrade-node.feature to view the args.
curl -L -O $1
chmod +x $CFG_DIR/polkadot
echo $(polkadot --version)
33 changes: 33 additions & 0 deletions zombienet_tests/misc/0002-upgrade-node.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Description: Smoke / Upgrade Node
Network: ./0002-upgrade-node.toml
Creds: config

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

alice: parachain 2000 block height is at least 10 within 200 seconds
bob: parachain 2001 block height is at least 10 within 200 seconds

# upgrade both nodes
# For testing using native provider you should set this env var
# POLKADOT_PR_BIN_URL=https://gitlab.parity.io/parity/mirrors/polkadot/-/jobs/1842869/artifacts/raw/artifacts/polkadot
# with the version of polkadot you want to download.

# avg 30s in our infra
alice: run ./0002-download-polkadot-from-pr.sh with "{{POLKADOT_PR_BIN_URL}}" within 40 seconds
bob: run ./0002-download-polkadot-from-pr.sh with "{{POLKADOT_PR_BIN_URL}}" within 40 seconds
alice: restart after 5 seconds
bob: restart after 5 seconds

# process bootstrap
sleep 30 seconds

alice: is up within 10 seconds
bob: is up within 10 seconds


alice: parachain 2000 block height is at least 30 within 300 seconds
bob: parachain 2001 block height is at least 30 within 120 seconds

49 changes: 49 additions & 0 deletions zombienet_tests/misc/0002-upgrade-node.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
[settings]
timeout = 1000

[relaychain]
default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}"
chain = "rococo-local"


[[relaychain.nodes]]
name = "alice"
args = [ "-lparachain=debug,runtime=debug", "--db paritydb" ]

[[relaychain.nodes]]
name = "bob"
args = [ "-lparachain=debug,runtime=debug", "--db rocksdb" ]

[[relaychain.nodes]]
name = "charlie"
args = [ "-lparachain=debug,runtime=debug", "--db paritydb" ]

[[relaychain.nodes]]
name = "dave"
args = [ "-lparachain=debug,runtime=debug", "--db rocksdb" ]


[[parachains]]
id = 2000
addToGenesis = true

[parachains.collator]
name = "collator01"
image = "{{COL_IMAGE}}"
command = "undying-collator"
args = ["-lparachain=debug"]

[[parachains]]
id = 2001
addToGenesis = true

[parachains.collator]
name = "collator02"
image = "{{COL_IMAGE}}"
command = "undying-collator"
args = ["-lparachain=debug"]

[types.Header]
number = "u64"
parent_hash = "Hash"
post_state = "Hash"

0 comments on commit 9581849

Please sign in to comment.