feat: Vendor pezkuwi-subxt and pezkuwi-zombienet-sdk into monorepo

- Add pezkuwi-subxt crates to vendor/pezkuwi-subxt
- Add pezkuwi-zombienet-sdk crates to vendor/pezkuwi-zombienet-sdk
- Convert git dependencies to path dependencies
- Add vendor crates to workspace members
- Remove test/example crates from vendor (not needed for SDK)
- Fix feature propagation issues detected by zepter
- Fix workspace inheritance for internal dependencies
- All 606 crates now in workspace
- All 6919 internal dependency links verified correct
- No git dependencies remaining
This commit is contained in:
2025-12-22 23:31:24 +03:00
parent 4c8f281051
commit 70ddb6516f
386 changed files with 76759 additions and 36 deletions
+2
View File
@@ -0,0 +1,2 @@
@pepoviola
@l0r1s
@@ -0,0 +1,124 @@
name: Bug Report
description: File a bug report
labels: ["triage-needed"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
**NOTE** A number of issues reported against Zombienet are often found to already be fixed in more current versions of the project.
Before reporting an issue, please verify the version you are running with `zombienet version` and compare it to the latest release.
If they differ, please update your version of Zombienet to the latest possible and retry your command before creating an issue.
- type: textarea
id: description
attributes:
label: Issue Description
description: Please explain your issue
value: "Describe your issue"
validations:
required: true
- type: textarea
id: reproducer
attributes:
label: Steps to reproduce the issue
description: Please explain the steps to reproduce the issue, including configuration files needed.
value: "Steps to reproduce the issue\n1.\n2.\n3.\n"
validations:
required: true
- type: textarea
id: received_results
attributes:
label: Describe the results you received
description: Please explain the results you are noticing, including stacktrace and error logs.
value: "Describe the results you received"
validations:
required: true
- type: textarea
id: expected_results
attributes:
label: Describe the results you expected
description: Please explain the results you are expecting
value: "Describe the results you expected"
validations:
required: true
- type: input
id: zombienet_version
attributes:
label: Zombienet version
description: Which zombienet version are you using ?
validations:
required: true
- type: dropdown
id: provider
attributes:
label: Provider
description: Which provider are you using ?
options:
- Native
- Kubernetes
- Podman
validations:
required: true
- type: textarea
id: provider_version
attributes:
label: Provider version
description: Which provider version / binaries versions are you using ?
value: |
## For binaries
polkadot 0.9.40-a2b62fb872b
polkadot-parachain 0.9.380-fe24f39507f
## For Kubernetes/Podman
podman version 4.4.1
OR
kubectl version v0.26.3
cluster version 1.25.2
render: yaml
validations:
required: true
- type: dropdown
id: upstream_latest
attributes:
label: Upstream Latest Release
description: Have you tried running the [latest upstream release](https://github.com/paritytech/zombienet/releases/latest)
options:
- 'Yes'
- 'No'
validations:
required: true
- type: textarea
id: additional_environment
attributes:
label: Additional environment details
description: Please describe any additional environment details like (Cloud, Local, OS, Provider versions...)
value: "Additional environment details"
- type: textarea
id: additional_info
attributes:
label: Additional information
description: Please explain the additional information you deem important
value: "Additional information like issue happens only occasionally or issue happens with a particular architecture or on a particular setting"
validations:
required: false
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Provide us with screenshots if needed to have a better understanding of the issue
validations:
required: false
@@ -0,0 +1,43 @@
name: Feature request
description: File a feature request
labels: ["triage-needed"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature report!
Please make sure to describe your feature and the problem it would solve.
- type: textarea
id: description
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
value: "Describe the feature"
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen..
validations:
required: true
- type: textarea
id: alt_solution
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
+97
View File
@@ -0,0 +1,97 @@
name: Cargo Build & Test
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-Dwarnings"
jobs:
build:
name: Zombienet SDK - latest
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
# TODO 24-02-08: Disable nightly due to tkaitchuck/aHash#200.
#- nightly
steps:
# https://github.com/jlumbroso/free-disk-space
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: install_deps
run: sudo apt-get update && sudo apt-get install protobuf-compiler
- name: Init nigthly install for fmt
run: rustup update nightly && rustup default nightly && rustup component add rustfmt
- name: Check format
run: cargo +nightly fmt --check --all
- name: Init install
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} && rustup component add clippy
- name: Fetch cache
uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0
with:
shared-key: "zombie-cache"
- name: Clippy
# disable needless_lifetimes until we align the version with polakdot-sdk
run: cargo clippy --all-targets --all-features -- -A clippy::needless_lifetimes
- name: Build
run: cargo build
- name: Tests
run: cargo test --workspace -- --skip ci_k8s
# TODO: fix and re-enable
# coverage:
# name: Zombienet SDK - coverage
# needs: build
# runs-on: ubuntu-20.04
# if: github.event_name == 'pull_request'
# permissions:
# issues: write
# pull-requests: write
# steps:
# - uses: actions/checkout@v3
# # https://github.com/jlumbroso/free-disk-space
# - name: Free Disk Space (Ubuntu)
# uses: jlumbroso/free-disk-space@main
# with:
# tool-cache: false
# - name: Fetch cache
# uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0
# with:
# shared-key: "zombie-cache"
# - name: Install latest nextest release
# uses: taiki-e/install-action@nextest
# - name: Install cargo-llvm-cov
# uses: taiki-e/install-action@cargo-llvm-cov
# - name: Collect coverage data
# run: cargo llvm-cov nextest --workspace --exclude zombienet-sdk --test-threads 1 --lcov --output-path lcov.info
# - name: Report code coverage
# uses: Nef10/lcov-reporter-action@v0.4.0
# with:
# lcov-file: lcov.info
# pr-number: ${{ github.event.pull_request.number }}
@@ -0,0 +1,206 @@
name: Integration test
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
RUN_IN_CONTAINER: 1
FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 1
GHA_CLUSTER_SERVER_ADDR: "https://kubernetes.default:443"
CARGO_TERM_COLOR: always
RUSTFLAGS: "-Dwarnings"
BASE_IMAGE: docker.io/paritytech/ci-unified:bullseye-1.88.0-2025-06-27-v202506301118
RUN_IN_CI: "1"
RUST_LOG: "zombienet_orchestrator=debug,zombienet_provider=debug"
CARGO_TARGET_DIR: /tmp/target
jobs:
build-tests:
runs-on: ubuntu-latest
timeout-minutes: 60
container:
image: docker.io/paritytech/ci-unified:bullseye-1.88.0-2025-06-27-v202506301118
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
with:
cache-on-failure: true
- name: Build tests
run: |
cargo build --tests --keep-going --locked
mkdir -p artifacts
cd artifacts
find /tmp/target/debug/deps/ -maxdepth 1 -name "smoke-*" ! -name "*.d" -exec mv {} $(pwd)/smoke \;
find /tmp/target/debug/deps/ -maxdepth 1 -name "smoke_native-*" ! -name "*.d" -exec mv {} $(pwd)/smoke_native \;
cd ..
tar cvfz artifacts.tar.gz artifacts
- name: Upload artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: zombienet-tests-${{ github.sha }}
path: artifacts.tar.gz
k8s-integration-test-smoke:
runs-on: ubuntu-latest
needs: build-tests
timeout-minutes: 60
container:
image: docker.io/paritytech/ci-unified:bullseye-1.88.0-2025-06-27-v202506301118
steps:
- name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: zombienet-tests-${{ github.sha }}
path: /tmp
- name: script
timeout-minutes: 45
run: |
export ZOMBIE_K8S_CI_NAMESPACE=$(cat /data/namespace)
export ZOMBIE_PROVIDER="k8s"
cd /tmp
ls -la
tar xvfz artifacts.tar.gz
./artifacts/smoke --nocapture
- name: dump logs
if: always()
run: |
export ZOMBIE_K8S_CI_NAMESPACE=$(cat /data/namespace)
mkdir -p /tmp/zombie-1/logs
# Install kubectl if not available
if ! command -v kubectl &> /dev/null; then
echo "Installing kubectl..."
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
mv kubectl /usr/local/bin/
fi
echo "Listing pods in namespace $ZOMBIE_K8S_CI_NAMESPACE..."
kubectl get pods -n "$ZOMBIE_K8S_CI_NAMESPACE" -o wide || true
for pod in $(kubectl get pods -n "$ZOMBIE_K8S_CI_NAMESPACE" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || true); do
echo "Dumping logs for pod: $pod"
kubectl logs -n "$ZOMBIE_K8S_CI_NAMESPACE" "$pod" --all-containers=true > "/tmp/zombie-1/logs/${pod}.log" 2>&1 || true
done
find /tmp/zombie* -name "*.log" -type f ! -regex '.*/[0-9]+\.log' -exec cp {} /tmp/zombie-1/logs/ \; 2>/dev/null || true
echo "Collected logs:"
ls -la /tmp/zombie-1/logs/ || true
- name: upload logs
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: zombienet-logs-${{ github.job }}-${{ github.sha }}
path: |
/tmp/zombie-1/logs/*
docker-integration-test-smoke:
runs-on: ubuntu-latest
needs: build-tests
timeout-minutes: 60
steps:
- name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: zombienet-tests-${{ github.sha }}
path: /tmp
- name: Install dependencies
run: |
sudo apt-get -y update
sudo apt-get -y install wget
# Manually download and install the OpenSSL 1.1 library
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
- name: script
timeout-minutes: 45
run: |
export ZOMBIE_PROVIDER="docker"
cd /tmp
ls -la
tar xvfz artifacts.tar.gz
./artifacts/smoke --nocapture
- name: dump logs
if: always()
run: |
mkdir -p /tmp/zombie-1/logs
for container in $(docker ps -a --filter "name=zombie" --format "{{.Names}}" 2>/dev/null || true); do
echo "Dumping logs for container: $container"
docker logs "$container" > "/tmp/zombie-1/logs/${container}.log" 2>&1 || true
done
find /tmp/zombie* -name "*.log" -type f ! -regex '.*/[0-9]+\.log' -exec cp {} /tmp/zombie-1/logs/ \; 2>/dev/null || true
ls -la /tmp/zombie-1/logs/ || true
- name: upload logs
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: zombienet-logs-${{ github.job }}-${{ github.sha }}
path: |
/tmp/zombie-1/logs/*
native-integration-test-smoke:
runs-on: ubuntu-latest
needs: build-tests
timeout-minutes: 60
container:
image: docker.io/paritytech/ci-unified:bullseye-1.88.0-2025-06-27-v202506301118
steps:
- name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: zombienet-tests-${{ github.sha }}
path: /tmp
- name: Download bins
shell: bash
run: |
for bin in polkadot polkadot-execute-worker polkadot-prepare-worker polkadot-omni-node polkadot-parachain; do
echo "downloading $bin";
curl -L -o /tmp/$bin https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2503-1/$bin;
chmod 755 /tmp/$bin;
done
ls -ltr /tmp
export PATH=/tmp:$PATH
echo $PATH
- name: script
run: |
export PATH=/tmp:$PATH
echo $PATH
# mv artifacts.tar.gz /tmp
cd /tmp
ls -la
tar xvfz artifacts.tar.gz
export ZOMBIE_PROVIDER="native"
./artifacts/smoke_native --nocapture
# cargo test --test smoke-native -- --nocapture
- name: collect logs
if: always()
run: |
mkdir -p /tmp/zombie-1/logs
find /tmp/zombie* -name "*.log" -type f ! -regex '.*/[0-9]+\.log' -exec cp {} /tmp/zombie-1/logs/ \; 2>/dev/null || true
ls -la /tmp/zombie-1/logs/ || true
- name: upload logs
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: zombienet-logs-${{ github.job }}-${{ github.sha }}
path: |
/tmp/zombie-1/logs/*
@@ -0,0 +1,62 @@
name: Cargo Create Docs
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-Dwarnings"
jobs:
build-rust-doc:
name: Zombienet SDK - Rust Docs
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
# TODO 24-02-08: Disable nightly due to tkaitchuck/aHash#200.
#- nightly
- stable
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Init nigthly install for fmt
run: rustup update nightly && rustup default nightly && rustup component add rustfmt
- name: Check format
run: cargo +nightly fmt --check --all
- name: Init install
run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} && rustup component add clippy
- name: install_deps
run: sudo apt-get update && sudo apt-get install protobuf-compiler
- name: Create docs
run: |
cargo doc --no-deps
echo "<meta http-equiv=\"refresh\" content=\"0; url=zombienet_sdk\">" > target/doc/index.html
- name: Move docs
run: |
mkdir -p ./doc
mv ./target/doc/* ./doc
git config user.email "github-action@users.noreply.github.com"
git config user.name "GitHub Action"
git config user.password "${{ secrets.GH_PAGES_TOKEN }}"
git checkout --orphan gh-pages
mkdir to_delete
shopt -s extglob
mv !(to_delete) ./to_delete
mv ./to_delete/doc/* .
rm -rf ./to_delete
git add --all
git commit -m "Documentation"
shell: bash # Necessary for `shopt` to work
- run: git push -f origin gh-pages:gh-pages
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
@@ -0,0 +1,52 @@
name: File server build & image publish
run-name: Deploy file server ${{ github.ref }}
on:
push:
branches:
- main
paths:
- "Cargo.toml"
- "crates/file-server/**"
workflow_dispatch: {}
env:
PROJECT_ID: "parity-zombienet"
GCR_REGISTRY: "europe-west3-docker.pkg.dev"
GCR_REPOSITORY: "zombienet-public-images"
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup gcloud CLI
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
with:
service_account_key: ${{ secrets.GCP_SA_KEY }}
project_id: ${{ env.PROJECT_ID }}
export_default_credentials: true
- name: Login to GCP
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Artifact registry authentication
run: |
gcloud auth configure-docker ${{ env.GCR_REGISTRY }}
- name: Build, tag, and push image to GCP Artifact registry
id: build-image
env:
IMAGE: "${{ env.GCR_REGISTRY }}/${{ env.PROJECT_ID }}/${{ env.GCR_REPOSITORY }}/zombienet-file-server"
run: |
docker build -t $IMAGE:${{ github.sha }} -f ./crates/file-server/Dockerfile .
docker tag $IMAGE:${{ github.sha }} $IMAGE:latest
docker push --all-tags $IMAGE
echo "image=$IMAGE:${{ github.sha }}" >> $GITHUB_OUTPUT
echo "image=$IMAGE:latest" >> $GITHUB_OUTPUT
@@ -0,0 +1,26 @@
name: Publish to crates.io
on:
release:
types: [published]
jobs:
check-publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Rust Cache
uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- name: install parity-publish
run: cargo install parity-publish@0.10.6 --locked -q
- name: parity-publish check
run: parity-publish --color always check --allow-unpublished
# TODO: remove dry-run once we confirm everything works as expected
- name: parity-publish dry-run
run: parity-publish --color always apply --dry-run
@@ -0,0 +1,67 @@
name: Release bin for zombie-cli
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: macos-latest
target: aarch64-apple-darwin
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Build release binary
run: cargo build --release --bin zombie-cli --target ${{ matrix.target }}
- name: Package binary
run: |
mkdir -p dist
cp target/${{ matrix.target }}/release/zombie-cli dist/zombie-cli-${{ matrix.target }}
- name: Upload artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: zombie-cli-${{ matrix.os }}-${{ matrix.target }}-${{ github.ref_name }}
path: dist/*
release:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
path: artifacts
- name: Generate checksums
run: |
cd artifacts
sha256sum * > checksums.txt
- name: Create Release
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
with:
files: |
artifacts/**/*
artifacts/checksums.txt
generate_release_notes: true
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,31 @@
name: Spellcheck
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
spellcheck:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1.0.0
with:
toolchain: stable
- name: Install cargo-spellcheck
run: |
sudo apt-get install libclang-dev
export LIBCLANG_PATH=/usr/lib/llvm-18/lib/
cargo install cargo-spellcheck
- name: Run cargo-spellcheck
run: cargo spellcheck