mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-25 14:05:50 +00:00
Add bridge zombienet test back to the CI (#3264)
Related to https://github.com/paritytech/polkadot-sdk/issues/3176 This PR only adds the first bridge zombienet test back to the CI after fixing it, reverting https://github.com/paritytech/polkadot-sdk/pull/3071 Credits to @svyatonik for building all the CI infrastructure around this.
This commit is contained in:
@@ -395,3 +395,21 @@ build-subkey-linux:
|
|||||||
# after_script: [""]
|
# after_script: [""]
|
||||||
# tags:
|
# tags:
|
||||||
# - osx
|
# - osx
|
||||||
|
|
||||||
|
# bridges
|
||||||
|
|
||||||
|
# we need some non-binary artifacts in our bridges+zombienet image
|
||||||
|
prepare-bridges-zombienet-artifacts:
|
||||||
|
stage: build
|
||||||
|
extends:
|
||||||
|
- .docker-env
|
||||||
|
- .common-refs
|
||||||
|
- .run-immediately
|
||||||
|
- .collect-artifacts
|
||||||
|
before_script:
|
||||||
|
- mkdir -p ./artifacts/bridges-polkadot-sdk/bridges
|
||||||
|
- mkdir -p ./artifacts/bridges-polkadot-sdk/cumulus/zombienet
|
||||||
|
script:
|
||||||
|
- cp -r bridges/zombienet ./artifacts/bridges-polkadot-sdk/bridges/zombienet
|
||||||
|
- cp -r cumulus/scripts ./artifacts/bridges-polkadot-sdk/cumulus/scripts
|
||||||
|
- cp -r cumulus/zombienet/bridge-hubs ./artifacts/bridges-polkadot-sdk/cumulus/zombienet/bridge-hubs
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ publish-rustdoc:
|
|||||||
# note: images are used not only in zombienet but also in rococo, wococo and versi
|
# note: images are used not only in zombienet but also in rococo, wococo and versi
|
||||||
.build-push-image:
|
.build-push-image:
|
||||||
image: $BUILDAH_IMAGE
|
image: $BUILDAH_IMAGE
|
||||||
|
extends:
|
||||||
|
- .zombienet-refs
|
||||||
variables:
|
variables:
|
||||||
DOCKERFILE: "" # docker/path-to.Dockerfile
|
DOCKERFILE: "" # docker/path-to.Dockerfile
|
||||||
IMAGE_NAME: "" # docker.io/paritypr/image_name
|
IMAGE_NAME: "" # docker.io/paritypr/image_name
|
||||||
@@ -77,6 +79,7 @@ publish-rustdoc:
|
|||||||
--build-arg VCS_REF="${CI_COMMIT_SHA}"
|
--build-arg VCS_REF="${CI_COMMIT_SHA}"
|
||||||
--build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
--build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
||||||
--build-arg IMAGE_NAME="${IMAGE_NAME}"
|
--build-arg IMAGE_NAME="${IMAGE_NAME}"
|
||||||
|
--build-arg ZOMBIENET_IMAGE="${ZOMBIENET_IMAGE}"
|
||||||
--tag "$IMAGE_NAME:${DOCKER_IMAGES_VERSION}"
|
--tag "$IMAGE_NAME:${DOCKER_IMAGES_VERSION}"
|
||||||
--file ${DOCKERFILE} .
|
--file ${DOCKERFILE} .
|
||||||
- echo "$PARITYPR_PASS" |
|
- echo "$PARITYPR_PASS" |
|
||||||
@@ -163,3 +166,22 @@ build-push-image-substrate-pr:
|
|||||||
variables:
|
variables:
|
||||||
DOCKERFILE: "docker/dockerfiles/substrate_injected.Dockerfile"
|
DOCKERFILE: "docker/dockerfiles/substrate_injected.Dockerfile"
|
||||||
IMAGE_NAME: "docker.io/paritypr/substrate"
|
IMAGE_NAME: "docker.io/paritypr/substrate"
|
||||||
|
|
||||||
|
# unlike other images, bridges+zombienet image is based on Zombienet image that pulls required binaries
|
||||||
|
# from other fresh images (polkadot and cumulus)
|
||||||
|
build-push-image-bridges-zombienet-tests:
|
||||||
|
stage: publish
|
||||||
|
extends:
|
||||||
|
- .kubernetes-env
|
||||||
|
- .common-refs
|
||||||
|
- .build-push-image
|
||||||
|
needs:
|
||||||
|
- job: build-linux-stable
|
||||||
|
artifacts: true
|
||||||
|
- job: build-linux-stable-cumulus
|
||||||
|
artifacts: true
|
||||||
|
- job: prepare-bridges-zombienet-artifacts
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: "docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile"
|
||||||
|
IMAGE_NAME: "docker.io/paritypr/bridges-zombienet-tests"
|
||||||
|
|||||||
@@ -10,3 +10,5 @@ include:
|
|||||||
- .gitlab/pipeline/zombienet/cumulus.yml
|
- .gitlab/pipeline/zombienet/cumulus.yml
|
||||||
# polkadot tests
|
# polkadot tests
|
||||||
- .gitlab/pipeline/zombienet/polkadot.yml
|
- .gitlab/pipeline/zombienet/polkadot.yml
|
||||||
|
# bridges tests
|
||||||
|
- .gitlab/pipeline/zombienet/bridges.yml
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# This file is part of .gitlab-ci.yml
|
||||||
|
# Here are all jobs that are executed during "zombienet" stage for bridges
|
||||||
|
|
||||||
|
# common settings for all zombienet jobs
|
||||||
|
.zombienet-bridges-common:
|
||||||
|
extends:
|
||||||
|
- .kubernetes-env
|
||||||
|
- .zombienet-refs
|
||||||
|
rules:
|
||||||
|
- !reference [.build-refs, rules]
|
||||||
|
- if: $CI_COMMIT_REF_NAME =~ /^gh-readonly-queue.*$/
|
||||||
|
variables:
|
||||||
|
DOCKER_IMAGES_VERSION: ${CI_COMMIT_SHORT_SHA}
|
||||||
|
before_script:
|
||||||
|
- echo "Zombienet Tests Config"
|
||||||
|
- echo "${ZOMBIENET_IMAGE}"
|
||||||
|
- echo "${GH_DIR}"
|
||||||
|
- echo "${LOCAL_DIR}"
|
||||||
|
- ls "${LOCAL_DIR}"
|
||||||
|
- export DEBUG=zombie,zombie::network-node
|
||||||
|
- export ZOMBIENET_INTEGRATION_TEST_IMAGE="${BRIDGES_ZOMBIENET_TESTS_IMAGE}":${BRIDGES_ZOMBIENET_TESTS_IMAGE_TAG}
|
||||||
|
- echo "${ZOMBIENET_INTEGRATION_TEST_IMAGE}"
|
||||||
|
stage: zombienet
|
||||||
|
image: "${BRIDGES_ZOMBIENET_TESTS_IMAGE}:${BRIDGES_ZOMBIENET_TESTS_IMAGE_TAG}"
|
||||||
|
needs:
|
||||||
|
- job: build-push-image-bridges-zombienet-tests
|
||||||
|
artifacts: true
|
||||||
|
variables:
|
||||||
|
BRIDGES_ZOMBIENET_TESTS_IMAGE_TAG: ${DOCKER_IMAGES_VERSION}
|
||||||
|
BRIDGES_ZOMBIENET_TESTS_IMAGE: "docker.io/paritypr/bridges-zombienet-tests"
|
||||||
|
GH_DIR: "https://github.com/paritytech/polkadot-sdk/tree/${CI_COMMIT_SHA}/bridges/zombienet"
|
||||||
|
LOCAL_DIR: "/builds/parity/mirrors/polkadot-sdk/bridges/zombienet"
|
||||||
|
FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 1
|
||||||
|
RUN_IN_CONTAINER: "1"
|
||||||
|
artifacts:
|
||||||
|
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}_zombienet_bridge_tests"
|
||||||
|
when: always
|
||||||
|
expire_in: 2 days
|
||||||
|
paths:
|
||||||
|
- ./zombienet-logs
|
||||||
|
after_script:
|
||||||
|
- mkdir -p ./zombienet-logs
|
||||||
|
# copy general logs
|
||||||
|
- cp -r /tmp/bridges-tests-run-*/logs/* ./zombienet-logs/
|
||||||
|
# copy logs of rococo nodes
|
||||||
|
- cp -r /tmp/bridges-tests-run-*/bridge_hub_rococo_local_network/*.log ./zombienet-logs/
|
||||||
|
# copy logs of westend nodes
|
||||||
|
- cp -r /tmp/bridges-tests-run-*/bridge_hub_westend_local_network/*.log ./zombienet-logs/
|
||||||
|
|
||||||
|
zombienet-bridges-0001-asset-transfer-works:
|
||||||
|
extends:
|
||||||
|
- .zombienet-bridges-common
|
||||||
|
script:
|
||||||
|
- /home/nonroot/bridges-polkadot-sdk/bridges/zombienet/run-new-test.sh 0001-asset-transfer --docker
|
||||||
|
- echo "Done"
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
# this image is built on top of existing Zombienet image
|
||||||
|
ARG ZOMBIENET_IMAGE
|
||||||
|
# this image uses substrate-relay image built elsewhere
|
||||||
|
ARG SUBSTRATE_RELAY_IMAGE=docker.io/paritytech/substrate-relay:v2023-11-07-rococo-westend-initial-relayer
|
||||||
|
|
||||||
|
# metadata
|
||||||
|
ARG VCS_REF
|
||||||
|
ARG BUILD_DATE
|
||||||
|
ARG IMAGE_NAME
|
||||||
|
|
||||||
|
# we need `substrate-relay` binary, built elsewhere
|
||||||
|
FROM ${SUBSTRATE_RELAY_IMAGE} as relay-builder
|
||||||
|
|
||||||
|
# the base image is the zombienet image - we are planning to run zombienet tests using native
|
||||||
|
# provider here
|
||||||
|
FROM ${ZOMBIENET_IMAGE}
|
||||||
|
|
||||||
|
LABEL io.parity.image.authors="devops-team@parity.io" \
|
||||||
|
io.parity.image.vendor="Parity Technologies" \
|
||||||
|
io.parity.image.title="${IMAGE_NAME}" \
|
||||||
|
io.parity.image.description="Bridges Zombienet tests." \
|
||||||
|
io.parity.image.source="https://github.com/paritytech/polkadot-sdk/blob/${VCS_REF}/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile" \
|
||||||
|
io.parity.image.revision="${VCS_REF}" \
|
||||||
|
io.parity.image.created="${BUILD_DATE}" \
|
||||||
|
io.parity.image.documentation="https://github.com/paritytech/polkadot-sdk/bridges/zombienet"
|
||||||
|
|
||||||
|
# show backtraces
|
||||||
|
ENV RUST_BACKTRACE 1
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# for native provider to work (TODO: fix in zn docker?)
|
||||||
|
RUN apt-get update && apt-get install -y procps sudo
|
||||||
|
RUN yarn global add @polkadot/api-cli
|
||||||
|
|
||||||
|
# add polkadot binary to the docker image
|
||||||
|
COPY ./artifacts/polkadot /usr/local/bin/
|
||||||
|
COPY ./artifacts/polkadot-execute-worker /usr/local/bin/
|
||||||
|
COPY ./artifacts/polkadot-prepare-worker /usr/local/bin/
|
||||||
|
# add polkadot-parachain binary to the docker image
|
||||||
|
COPY ./artifacts/polkadot-parachain /usr/local/bin
|
||||||
|
# copy substrate-relay to the docker image
|
||||||
|
COPY --from=relay-builder /home/user/substrate-relay /usr/local/bin/
|
||||||
|
# we need bridges zombienet runner and tests
|
||||||
|
RUN mkdir -p /home/nonroot/bridges-polkadot-sdk
|
||||||
|
COPY ./artifacts/bridges-polkadot-sdk /home/nonroot/bridges-polkadot-sdk
|
||||||
|
# also prepare `generate_hex_encoded_call` for running
|
||||||
|
RUN set -eux; \
|
||||||
|
cd /home/nonroot/bridges-polkadot-sdk/cumulus/scripts/generate_hex_encoded_call; \
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# check if executable works in this container
|
||||||
|
USER nonroot
|
||||||
|
RUN /usr/local/bin/polkadot --version
|
||||||
|
RUN /usr/local/bin/polkadot-parachain --version
|
||||||
|
RUN /usr/local/bin/substrate-relay --version
|
||||||
|
|
||||||
|
# https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:{PORT}#/explorer
|
||||||
|
EXPOSE 9942 9910 8943 9945 9010 8945
|
||||||
Reference in New Issue
Block a user