mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 08:51:09 +00:00
[CI]Chaostest suite initiation (#5793)
* Initiate chaostest cli test suite: singlenodeheight on one dev node
Added chaostest stages in CI
Added new docker/k8s resources and environments to CI
Added new chaos-only tag to gitlab-ci.yml
* Update .maintain/chaostest/src/commands/singlenodeheight/index.js
Co-authored-by: Max Inden <mail@max-inden.de>
* change nameSpace to namespace(one word)
* update chaos ci job to match template
* rename build-pr ci stage to docker [chaos:basic]
* test gitlab-ci [chaos:basic]
* Update .gitlab-ci.yml
* add new build-chaos-only condition
* add *default-vars to singlenodeheight [chaos:basic]
* change build-only to build-rules on substrate jobs [chaos:basic]
* test and change when:on_success to when:always [chaos:basic]
* resolve conflicts and test [chaos:basic]
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Denis Pisarev <denis.pisarev@parity.io>
This commit is contained in:
+121
-11
@@ -26,6 +26,8 @@ stages:
|
||||
- test
|
||||
- build
|
||||
- post-build-test
|
||||
- docker
|
||||
- chaos
|
||||
- publish
|
||||
- deploy
|
||||
- flaming-fir
|
||||
@@ -64,12 +66,6 @@ default:
|
||||
- rustup show
|
||||
- cargo --version
|
||||
- sccache -s
|
||||
only:
|
||||
- master
|
||||
- /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
|
||||
- schedules
|
||||
- web
|
||||
- /^[0-9]+$/ # PRs
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
@@ -80,6 +76,14 @@ default:
|
||||
tags:
|
||||
- linux-docker
|
||||
|
||||
.docker-env-only: &docker-env-only
|
||||
only:
|
||||
- master
|
||||
- /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
|
||||
- schedules
|
||||
- web
|
||||
- /^[0-9]+$/ # PRs
|
||||
|
||||
.build-only: &build-only
|
||||
only:
|
||||
- master
|
||||
@@ -87,6 +91,27 @@ default:
|
||||
- /^pre-v[0-9]+\.[0-9]+-[0-9a-f]+$/
|
||||
- web
|
||||
|
||||
.build-rules: &build-rules
|
||||
rules:
|
||||
- if: '$DEPLOY_TAG'
|
||||
when: never
|
||||
- if: $CI_COMMIT_REF_NAME=="master"
|
||||
when: always
|
||||
- if: $CI_PIPELINE_SOURCE=="web"
|
||||
when: always
|
||||
- if: $CI_COMMIT_REF_NAME=~ /^v[0-9]+\.[0-9]+.*$/
|
||||
when: always
|
||||
- if: $CI_COMMIT_REF_NAME=~ /^pre-v[0-9]+\.[0-9]+-[0-9a-f]+$/
|
||||
when: always
|
||||
- if: '$CI_COMMIT_MESSAGE =~ /\[chaos:(basic|medium|large)\]/ && $CI_COMMIT_REF_NAME=~ /^[0-9]+$/' # i.e add [chaos:basic] in commit message to trigger
|
||||
when: always
|
||||
- when: never
|
||||
|
||||
.chaos-only: &chaos-only
|
||||
only:
|
||||
variables:
|
||||
- '$CI_COMMIT_MESSAGE =~ /\[chaos:(basic|medium|large)\]/ && $CI_COMMIT_REF_NAME=~ /^[0-9]+$/' # i.e add [chaos:basic] in commit message to trigger
|
||||
|
||||
#### stage: .pre
|
||||
|
||||
skip-if-draft:
|
||||
@@ -96,6 +121,10 @@ skip-if-draft:
|
||||
only:
|
||||
- /^[0-9]+$/ # Pull requests
|
||||
script:
|
||||
- echo "Commit message is ${CI_COMMIT_MESSAGE}"
|
||||
- echo "Ref is ${CI_COMMIT_REF_NAME}"
|
||||
- echo "pipeline source is ${CI_PIPELINE_SOURCE}"
|
||||
- echo "deploy tag is ${DEPLOY_TAG}"
|
||||
- ./.maintain/gitlab/skip_if_draft.sh
|
||||
|
||||
#### stage: check
|
||||
@@ -149,6 +178,7 @@ test-dependency-rules:
|
||||
cargo-audit:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
except:
|
||||
- /^[0-9]+$/
|
||||
script:
|
||||
@@ -158,6 +188,7 @@ cargo-audit:
|
||||
cargo-deny:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
only:
|
||||
- schedules
|
||||
- tags
|
||||
@@ -177,6 +208,7 @@ cargo-deny:
|
||||
cargo-check-benches:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
script:
|
||||
- BUILD_DUMMY_WASM_BINARY=1 time cargo +nightly check --benches --all
|
||||
- cargo run --release -p node-bench -- ::node::import::native::sr25519::transfer_keep_alive::paritydb::small
|
||||
@@ -186,6 +218,7 @@ cargo-check-benches:
|
||||
cargo-check-subkey:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
except:
|
||||
- /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
|
||||
script:
|
||||
@@ -217,6 +250,7 @@ test-deterministic-wasm:
|
||||
test-linux-stable: &test-linux
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
variables:
|
||||
<<: *default-vars
|
||||
# Enable debug assertions since we are running optimized builds for testing
|
||||
@@ -235,6 +269,7 @@ test-linux-stable: &test-linux
|
||||
unleash-check:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
only:
|
||||
- master
|
||||
- tags
|
||||
@@ -246,6 +281,7 @@ test-frame-examples-compile-to-wasm:
|
||||
# into one job
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
variables:
|
||||
<<: *default-vars
|
||||
# Enable debug assertions since we are running optimized builds for testing
|
||||
@@ -289,6 +325,7 @@ test-linux-stable-int:
|
||||
check-web-wasm:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
except:
|
||||
- /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
|
||||
script:
|
||||
@@ -308,6 +345,7 @@ check-web-wasm:
|
||||
test-full-crypto-feature:
|
||||
stage: test
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
variables:
|
||||
<<: *default-vars
|
||||
# Enable debug assertions since we are running optimized builds for testing
|
||||
@@ -328,6 +366,7 @@ cargo-check-macos:
|
||||
stage: test
|
||||
# shell runner on mac ignores the image set in *docker-env
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
script:
|
||||
- BUILD_DUMMY_WASM_BINARY=1 time cargo check --release
|
||||
- sccache -s
|
||||
@@ -356,6 +395,7 @@ check-polkadot-companion-status:
|
||||
check-polkadot-companion-build:
|
||||
stage: build
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
needs:
|
||||
- job: test-linux-stable-int
|
||||
artifacts: false
|
||||
@@ -368,6 +408,7 @@ check-polkadot-companion-build:
|
||||
test-browser-node:
|
||||
stage: build
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
needs:
|
||||
- job: check-web-wasm
|
||||
artifacts: false
|
||||
@@ -383,15 +424,12 @@ build-linux-substrate: &build-binary
|
||||
stage: build
|
||||
<<: *collect-artifacts
|
||||
<<: *docker-env
|
||||
<<: *build-only
|
||||
<<: *build-rules
|
||||
needs:
|
||||
- job: test-linux-stable
|
||||
artifacts: false
|
||||
before_script:
|
||||
- mkdir -p ./artifacts/substrate/
|
||||
except:
|
||||
variables:
|
||||
- $DEPLOY_TAG
|
||||
script:
|
||||
- WASM_BUILD_NO_COLOR=1 time cargo build --release --verbose
|
||||
- mv ./target/release/substrate ./artifacts/substrate/.
|
||||
@@ -411,7 +449,10 @@ build-linux-substrate: &build-binary
|
||||
|
||||
|
||||
build-linux-subkey: &build-subkey
|
||||
<<: *build-binary
|
||||
stage: build
|
||||
<<: *collect-artifacts
|
||||
<<: *docker-env
|
||||
<<: *build-only
|
||||
needs:
|
||||
- job: cargo-check-subkey
|
||||
artifacts: false
|
||||
@@ -441,6 +482,7 @@ build-macos-subkey:
|
||||
build-rust-doc-release:
|
||||
stage: build
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
|
||||
@@ -474,6 +516,73 @@ trigger-contracts-ci:
|
||||
- master
|
||||
- schedules
|
||||
|
||||
#### stage: docker
|
||||
docker-build-chaos: &docker-build-chaos
|
||||
<<: *chaos-only
|
||||
stage: docker
|
||||
needs:
|
||||
- job: build-linux-substrate
|
||||
image: docker:stable
|
||||
tags:
|
||||
- kubernetes-parity-build
|
||||
variables:
|
||||
<<: *default-vars
|
||||
DOCKER_HOST: tcp://localhost:2375
|
||||
DOCKER_DRIVER: overlay2
|
||||
PRODUCT: substrate
|
||||
DOCKERFILE: $PRODUCT.Dockerfile
|
||||
CONTAINER_IMAGE: paritypr/$PRODUCT
|
||||
environment:
|
||||
name: parity-chaosnet
|
||||
services:
|
||||
- docker:dind
|
||||
before_script:
|
||||
- test "$DOCKER_CHAOS_USER" -a "$DOCKER_CHAOS_TOKEN"
|
||||
|| ( echo "no docker credentials provided"; exit 1 )
|
||||
- docker login -u "$DOCKER_CHAOS_USER" -p "$DOCKER_CHAOS_TOKEN"
|
||||
- docker info
|
||||
script:
|
||||
- cd ./artifacts/$PRODUCT/
|
||||
- VERSION="ci-${CI_COMMIT_SHORT_SHA}"
|
||||
- echo "${PRODUCT} version = ${VERSION}"
|
||||
- test -z "${VERSION}" && exit 1
|
||||
- docker build
|
||||
--build-arg VCS_REF="${CI_COMMIT_SHA}"
|
||||
--build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
||||
--tag $CONTAINER_IMAGE:$VERSION
|
||||
--file $DOCKERFILE .
|
||||
- docker push $CONTAINER_IMAGE:$VERSION
|
||||
after_script:
|
||||
- docker logout
|
||||
|
||||
#### stage: chaos
|
||||
chaos-test-singlenodeheight:
|
||||
<<: *chaos-only
|
||||
stage: chaos
|
||||
image: parity/chaostools:latest
|
||||
needs:
|
||||
- job: docker-build-chaos
|
||||
tags:
|
||||
- parity-chaos
|
||||
variables:
|
||||
<<: *default-vars
|
||||
PRODUCT: substrate
|
||||
DOCKERFILE: $PRODUCT.Dockerfile
|
||||
CONTAINER_IMAGE: paritypr/$PRODUCT
|
||||
KEEP_NAMESPACE: 0
|
||||
NAMESPACE: "substrate-ci-${CI_COMMIT_SHORT_SHA}-${CI_PIPELINE_ID}"
|
||||
VERSION: "ci-${CI_COMMIT_SHORT_SHA}"
|
||||
interruptible: true
|
||||
environment:
|
||||
name: parity-chaosnet
|
||||
script:
|
||||
- cd ./.maintain/chaostest
|
||||
- npm link
|
||||
- chaostest spawn dev -i $CONTAINER_IMAGE:$VERSION
|
||||
- chaostest singlenodeheight -h 30
|
||||
after_script:
|
||||
- chaostest clean
|
||||
|
||||
#### stage: publish
|
||||
|
||||
.build-push-docker-image: &build-push-docker-image
|
||||
@@ -596,6 +705,7 @@ publish-draft-release:
|
||||
publish-to-crates-io:
|
||||
stage: publish
|
||||
<<: *docker-env
|
||||
<<: *docker-env-only
|
||||
only:
|
||||
- /^ci-release-.*$/
|
||||
- /^v[0-9]+\.[0-9]+\.[0-9]+.*$/
|
||||
|
||||
Reference in New Issue
Block a user