Skip to content

Commit

Permalink
Ci/zombietests logs (#2127)
Browse files Browse the repository at this point in the history
* Save zombie-tests to host

---------

Co-authored-by: Kirill Azovtsev <[email protected]>
Co-authored-by: kamilsa <[email protected]>
  • Loading branch information
3 people authored Jun 14, 2024
1 parent a8cd7cb commit b49dbda
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 91 deletions.
42 changes: 24 additions & 18 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ jobs:
runs-on: macos-14
timeout-minutes: 120
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ env.CACHE_VERSION }}
Expand Down Expand Up @@ -63,8 +63,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ matrix.options.name }}-${{ env.CACHE_VERSION }}
Expand Down Expand Up @@ -101,8 +101,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ matrix.options.name }}-${{ env.CACHE_VERSION }}
Expand All @@ -117,10 +117,10 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ env.CACHE_VERSION }}
Expand All @@ -141,8 +141,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ env.CACHE_VERSION }}
Expand Down Expand Up @@ -181,8 +181,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ matrix.options.name }}-${{ env.CACHE_VERSION }}
Expand All @@ -206,8 +206,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ matrix.options.name }}-${{ env.CACHE_VERSION }}
Expand All @@ -233,8 +233,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ env.CACHE_VERSION }}
Expand Down Expand Up @@ -279,7 +279,7 @@ jobs:
run: docker image ls -a
- name: Set owner of working dir recursively
run: sudo chown -R $(whoami) .
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/checkout@v4
- name: Extract branch name
shell: bash
run: |
Expand Down Expand Up @@ -339,7 +339,13 @@ jobs:
run: |
docker load --input /tmp/zombie-tester.tar
docker image ls -a
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/checkout@v4
- name: Run test
working-directory: ./zombienet/docker
run: make ${{ matrix.options.test }} ZOMBIE_TESTER_IMAGE=zombie-tester:latest
- name: Upload test logs as artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.options.test }}
path: /tmp/test_logs
4 changes: 2 additions & 2 deletions .github/workflows/zombie-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev@sha256:2d70246c32418a3dd45c246d3f5c2dd99bdafde145b903271849affe476c4cfc
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/checkout@v4
- name: build zombie-builder
working-directory: ./zombienet/docker
run: make builder_last
- uses: azure/docker-login@83efeb77770c98b620c73055fbb59b2847e17dc0
- uses: azure/docker-login@v2
with:
login-server: https://index.docker.io/v1/
username: ${{ secrets.DOCKER_USERNAME }}
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/zombie-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ jobs:
timeout-minutes: 120
container: qdrvm/kagome-dev:9-minideb
steps:
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ${{ env.CACHE_PATHS }}
key: ${{ github.job }}-${{ matrix.options.name }}-${{ env.CACHE_VERSION }}
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
docker image ls -a
- name: Set owner of working dir recursively
run: sudo chown -R $(whoami) .
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/checkout@v4
- name: Extract branch name
shell: bash
run: |
Expand Down Expand Up @@ -141,7 +141,13 @@ jobs:
run: |
docker load --input /tmp/zombie-tester.tar
docker image ls -a
- uses: actions/checkout@dc323e67f16fb5f7663d20ff7941f27f5809e9b6
- uses: actions/checkout@v4
- name: Run test
working-directory: ./zombienet/docker
run: make ${{ matrix.options.test }} ZOMBIE_TESTER_IMAGE=zombie-tester:latest
- name: Upload test logs as artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.options.test }}
path: /tmp/test_logs
120 changes: 55 additions & 65 deletions zombienet/docker/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,49 @@
BRANCH_NAME ?= master
KAGOME_IMAGE ?= qdrvm/kagome:latest
ZOMBIE_TESTER_IMAGE ?= qdrvm/zombie-tester:latest
CONTAINER_NAME ?= zombienet-test

COPY_LOGS_TO_HOST ?= true
HOST_LOGS_PATH ?= /tmp/test_logs

CUMULUS_RELEASE ?= v0.9.420
POLKADOT_RELEASE ?= v0.9.42
POLKADOT_RELEASE_GLOBAL ?= v0.9.42

# run_test takes two arguments:
# (1) docker image name
# (2) test file path
# COPY_LOGS_TO_HOST: boolean flag to determine whether to copy logs to host

define run_test
@CONTAINER_NAME=$$(openssl rand -hex 6); \
echo "Running test in container $$CONTAINER_NAME with params image:$(1), test:$(2)"; \
docker run --name $$CONTAINER_NAME --platform linux/amd64 $(1) zombienet-linux-x64 test -p native $(2); \
TEST_EXIT_CODE=$$(docker inspect $$CONTAINER_NAME --format='{{.State.ExitCode}}'); \
if [ "$(COPY_LOGS_TO_HOST)" = "true" ]; then \
$(MAKE) copy_logs_to_host CONTAINER_NAME=$$CONTAINER_NAME; \
fi; \
echo "Test finished with exit code $$TEST_EXIT_CODE"; \
exit $$TEST_EXIT_CODE
endef

copy_logs_to_host:
@CONTAINER_NAME=$(CONTAINER_NAME); \
FINISHED_CONTAINER_NAME=$$CONTAINER_NAME-finished; \
FINISHED_IMAGE_NAME=$$CONTAINER_NAME-finished-image; \
echo "Copying logs from container $$CONTAINER_NAME to host path $(HOST_LOGS_PATH)"; \
docker commit $$CONTAINER_NAME $$FINISHED_IMAGE_NAME; \
echo "Starting temporary container $$FINISHED_CONTAINER_NAME to copy logs"; \
docker run -d --name $$FINISHED_CONTAINER_NAME --platform linux/amd64 --entrypoint "/bin/bash" $$FINISHED_IMAGE_NAME -c "tail -f /dev/null"; \
mkdir -p $(HOST_LOGS_PATH); \
DIRS_TO_COPY=$$(docker exec $$FINISHED_CONTAINER_NAME "/bin/bash" -c "find /tmp/ -type d -name 'zombie-*'"); \
for DIR in $$DIRS_TO_COPY; do \
docker cp "$$FINISHED_CONTAINER_NAME:$$DIR/logs" "$(HOST_LOGS_PATH)/$$(basename $$DIR)"; \
done; \
echo "Stop and removing container $$FINISHED_CONTAINER_NAME and image $$FINISHED_IMAGE_NAME"; \
docker stop $$FINISHED_CONTAINER_NAME; \
docker rm -f $$FINISHED_CONTAINER_NAME; \
docker rmi $$FINISHED_IMAGE_NAME

builder_last:
python version.py https://github.com/paritytech/polkadot-sdk && \
Expand Down Expand Up @@ -33,7 +76,7 @@ builder_push:
fi

builder:
DOCKER_BUILDKIT=0 docker build -t qdrvm/zombie-builder:latest -f builder.Dockerfile --build-arg CUMULUS_RELEASE=v0.9.420 --build-arg POLKADOT_RELEASE=v0.9.42 --build-arg POLKADOT_RELEASE_GLOBAL=v0.9.42 .
DOCKER_BUILDKIT=0 docker build -t qdrvm/zombie-builder:latest -f builder.Dockerfile --build-arg CUMULUS_RELEASE=$(CUMULUS_RELEASE) --build-arg POLKADOT_RELEASE=$(POLKADOT_RELEASE) --build-arg POLKADOT_RELEASE_GLOBAL=$(POLKADOT_RELEASE_GLOBAL) .

tester:
python3 version.py https://github.com/paritytech/polkadot-sdk && \
Expand All @@ -52,88 +95,35 @@ tester:
tests:
docker run --platform linux/amd64 -it qdrvm/zombie-tester:latest bash

test0001:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0001-parachains-smoke-test/0001-parachains-smoke-test.zndsl

test0001_kagome:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0001-parachains-smoke-test-kagome/0001-parachains-smoke-test-kagome.zndsl

test0002:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0002-parachains-upgrade-smoke-tests/0002-parachains-upgrade-smoke-test.zndsl

test0002_kagome:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0002-parachains-upgrade-smoke-tests-kagome/0002-parachains-upgrade-smoke-test-kagome.zndsl

test0003:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0003-parachains-smoke-test-cumulus/0003-parachains-smoke-test-cumulus.zndsl

test0003_kagome:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0003-parachains-smoke-test-cumulus-kagome/0003-parachains-smoke-test-cumulus-kagome.zndsl

test0004:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0004-runtime-upgrade/0004-runtime-upgrade.zndsl

test0004_kagome:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0004-runtime-upgrade-kagome/0004-runtime-upgrade-kagome.zndsl

test0005:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0005-dispute-valid-block-1-kagome/0005-dispute-valid-block-1-kagome.zndsl

test0006:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0006-parachains-disputes-1-kagome/0006-parachains-disputes-1-kagome.zndsl

test0008:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0008-deregister-register-validator-smoke/0008-deregister-register-validator-smoke.zndsl

test0009:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0009-basic-warp-sync/0009-basic-warp-sync.zndsl

test0010:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0010-validators-warp-sync/0010-validators-warp-sync.zndsl

test0011:
docker run qdrvm/zombie-tester:latest zombienet-linux-x64 test -p native kagome/zombienet/0011-block-building-warp-sync/0011-block-building-warp-sync.zndsl

test-polkadot-functional-0001-parachains-pvf:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run --platform linux/amd64 $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0001-parachains-pvf.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0001-parachains-pvf.zndsl")

test-polkadot-functional-0002-parachains-disputes:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0002-parachains-disputes.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0002-parachains-disputes.zndsl")

test-polkadot-functional-0003-beefy-and-mmr:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0003-beefy-and-mmr.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0003-beefy-and-mmr.zndsl")

test-polkadot-functional-0004-parachains-garbage-candidate:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0004-parachains-garbage-candidate.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0004-parachains-garbage-candidate.zndsl")

test-polkadot-functional-0005-parachains-disputes-past-session:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0005-parachains-disputes-past-session.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0005-parachains-disputes-past-session.zndsl")

test-polkadot-functional-0006-parachains-max-tranche0:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0006-parachains-max-tranche0.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0006-parachains-max-tranche0.zndsl")

test-polkadot-functional-0007-dispute-freshly-finalized:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0007-dispute-freshly-finalized.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0007-dispute-freshly-finalized.zndsl")

test-polkadot-functional-0008-dispute-old-finalized:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0008-dispute-old-finalized.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0008-dispute-old-finalized.zndsl")

test-polkadot-functional-0009-approval-voting-coalescing:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0009-approval-voting-coalescing.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0009-approval-voting-coalescing.zndsl")

test-polkadot-functional-0010-validator-disabling:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0010-validator-disabling.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0010-validator-disabling.zndsl")

test-polkadot-functional-0011-async-backing-6-seconds-rate:
ZOMBIE_TESTER_IMAGE=$(ZOMBIE_TESTER_IMAGE)
docker run $$ZOMBIE_TESTER_IMAGE zombienet-linux-x64 test -p native kagome/zombienet/polkadot/functional/0011-async-backing-6-seconds-rate.zndsl
$(call run_test, $(ZOMBIE_TESTER_IMAGE), "kagome/zombienet/polkadot/functional/0011-async-backing-6-seconds-rate.zndsl")
2 changes: 1 addition & 1 deletion zombienet/docker/builder.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,4 @@ RUN wget https://github.com/paritytech/zombienet/releases/download/$ZOMBIENET_RE
cp zombienet-linux-x64 /home/nonroot/bin && \
rm -rf zombienet-linux-x64

RUN chown -R root. /home/nonroot
RUN chown -R root. /home/nonroot
2 changes: 1 addition & 1 deletion zombienet/docker/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,4 @@ def main():
if len(args) == 1:
get_version(args[0])

main()
main()

0 comments on commit b49dbda

Please sign in to comment.