Files
pezkuwi-sdk/vendor/pezkuwi-zombienet-sdk/.github/workflows/ci_integration.yml
T
pezkuwichain 70ddb6516f 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
2025-12-23 09:37:11 +03:00

207 lines
7.2 KiB
YAML

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/*