Skip to content

[stable2509] Backport #10592 #21601

[stable2509] Backport #10592

[stable2509] Backport #10592 #21601

name: Zombienet Cumulus
on:
workflow_dispatch:
inputs:
test_pattern:
type: string
description: "Run tests which names match this pattern (also flaky)"
default: ""
required: false
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions: read-all
env:
FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 1
LOCAL_DIR: "./cumulus/zombienet/tests"
GHA_CLUSTER_SERVER_ADDR: "https://kubernetes.default:443"
# use spot by default
X_INFRA_INSTANCE: "spot"
# don't retry sdk tests
NEXTEST_RETRIES: 0
KUBECONFIG: "/data/config"
ZOMBIE_CLEANER_DISABLED: 1
# only run if we have changes in [subtrate, cumulus, polkadot] directories or this workflow.
jobs:
isdraft:
uses: ./.github/workflows/reusable-isdraft.yml
preflight:
needs: isdraft
uses: ./.github/workflows/zombienet-reusable-preflight.yml
with:
tests_yaml: .github/zombienet-tests/zombienet_cumulus_tests.yml
test_pattern: ${{ inputs.test_pattern }}
zombienet-cumulus-tests:
name: ${{ matrix.test.job-name }}
runs-on: ${{ matrix.test.runner-type == 'large' && needs.preflight.outputs.ZOMBIENET_SDK_LARGE_RUNNER || needs.preflight.outputs.ZOMBIENET_SDK_DEFAULT_RUNNER }}
timeout-minutes: 60
needs: [preflight]
if: ${{ (needs.preflight.outputs.changes_substrate || needs.preflight.outputs.changes_cumulus || needs.preflight.outputs.changes_polkadot) }}
container:
image: ${{ needs.preflight.outputs.ZOMBIENET_SDK_IMAGE }}
options: -v /tmp/zombienet:/tmp/zombienet
env:
POLKADOT_IMAGE: "${{ needs.preflight.outputs.TEMP_IMAGES_BASE }}/polkadot-debug:${{ needs.preflight.outputs.DOCKER_IMAGES_VERSION }}"
CUMULUS_IMAGE: "${{ needs.preflight.outputs.TEMP_IMAGES_BASE }}/${{ matrix.test.cumulus-image }}:${{ needs.preflight.outputs.DOCKER_IMAGES_VERSION }}"
RUST_LOG: ${{ needs.preflight.outputs.RUST_LOG }}
ZOMBIE_PROVIDER: ${{ needs.preflight.outputs.ZOMBIE_PROVIDER }}
strategy:
fail-fast: false
matrix:
test: ${{ fromJson(needs.preflight.outputs.TEST_MATRIX) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/[email protected]
if: ${{ matrix.test.needs-wasm-binary }}
with:
name: build-test-parachain-${{ needs.preflight.outputs.SOURCE_REF_SLUG }}
github-token: ${{ secrets.GITHUB_TOKEN }}
run-id: ${{ needs.preflight.outputs.BUILD_RUN_ID }}
- name: provide_wasm_binary
if: ${{ matrix.test.needs-wasm-binary }}
run: |
tar -xvf artifacts.tar
ls -ltr artifacts/*
cp ./artifacts/zombienet/wasm_binary_spec_version_incremented.rs.compact.compressed.wasm /tmp/
ls -ltr /tmp
rm -rf artifacts
- name: zombienet_test
uses: ./.github/actions/zombienet-sdk
with:
test-filter: ${{ matrix.test.test-filter }}
job-name: ${{ matrix.test.job-name }}
prefix: "cumulus"
gh-token: ${{ secrets.GITHUB_TOKEN }}
build-id: ${{ needs.preflight.outputs.BUILD_RUN_ID }}
ref-slug: ${{ needs.preflight.outputs.SOURCE_REF_SLUG }}