diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3ccae382..e7393bef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -450,7 +450,17 @@ test-partition-1: cargo nextest run \ --workspace --locked --no-fail-fast --cargo-quiet \ --features try-runtime,experimental,ci-only-tests \ - --partition count:1/3 + --partition count:1/3 \ + --exclude asset-hub-pezkuwichain-integration-tests \ + --exclude asset-hub-zagros-integration-tests \ + --exclude collectives-zagros-integration-tests \ + --exclude coretime-pezkuwichain-integration-tests \ + --exclude coretime-zagros-integration-tests \ + --exclude governance-zagros-integration-tests \ + --exclude people-pezkuwichain-integration-tests \ + --exclude people-zagros-integration-tests \ + --exclude pezbridge-hub-pezkuwichain-integration-tests \ + --exclude pezbridge-hub-zagros-integration-tests artifacts: when: always paths: [test-results-1.xml] @@ -466,7 +476,17 @@ test-partition-2: cargo nextest run \ --workspace --locked --no-fail-fast --cargo-quiet \ --features try-runtime,experimental,ci-only-tests \ - --partition count:2/3 + --partition count:2/3 \ + --exclude asset-hub-pezkuwichain-integration-tests \ + --exclude asset-hub-zagros-integration-tests \ + --exclude collectives-zagros-integration-tests \ + --exclude coretime-pezkuwichain-integration-tests \ + --exclude coretime-zagros-integration-tests \ + --exclude governance-zagros-integration-tests \ + --exclude people-pezkuwichain-integration-tests \ + --exclude people-zagros-integration-tests \ + --exclude pezbridge-hub-pezkuwichain-integration-tests \ + --exclude pezbridge-hub-zagros-integration-tests artifacts: when: always paths: [test-results-2.xml] @@ -482,8 +502,18 @@ test-partition-3: cargo nextest run \ --workspace --locked --no-fail-fast --cargo-quiet \ --features try-runtime,experimental,ci-only-tests \ - --partition count:3/3 - # First partition also runs runtime-api tests + --partition count:3/3 \ + --exclude asset-hub-pezkuwichain-integration-tests \ + --exclude asset-hub-zagros-integration-tests \ + --exclude collectives-zagros-integration-tests \ + --exclude coretime-pezkuwichain-integration-tests \ + --exclude coretime-zagros-integration-tests \ + --exclude governance-zagros-integration-tests \ + --exclude people-pezkuwichain-integration-tests \ + --exclude people-zagros-integration-tests \ + --exclude pezbridge-hub-pezkuwichain-integration-tests \ + --exclude pezbridge-hub-zagros-integration-tests + # Also runs runtime-api tests - cargo nextest run -p pezsp-api-test --features enable-pez-staging-api --cargo-quiet artifacts: when: always @@ -500,7 +530,17 @@ test-no-try-runtime-1: cargo nextest run \ --workspace --locked --no-fail-fast --cargo-quiet \ --features experimental,ci-only-tests \ - --partition count:1/2 + --partition count:1/2 \ + --exclude asset-hub-pezkuwichain-integration-tests \ + --exclude asset-hub-zagros-integration-tests \ + --exclude collectives-zagros-integration-tests \ + --exclude coretime-pezkuwichain-integration-tests \ + --exclude coretime-zagros-integration-tests \ + --exclude governance-zagros-integration-tests \ + --exclude people-pezkuwichain-integration-tests \ + --exclude people-zagros-integration-tests \ + --exclude pezbridge-hub-pezkuwichain-integration-tests \ + --exclude pezbridge-hub-zagros-integration-tests test-no-try-runtime-2: extends: .test-base @@ -510,7 +550,74 @@ test-no-try-runtime-2: cargo nextest run \ --workspace --locked --no-fail-fast --cargo-quiet \ --features experimental,ci-only-tests \ - --partition count:2/2 + --partition count:2/2 \ + --exclude asset-hub-pezkuwichain-integration-tests \ + --exclude asset-hub-zagros-integration-tests \ + --exclude collectives-zagros-integration-tests \ + --exclude coretime-pezkuwichain-integration-tests \ + --exclude coretime-zagros-integration-tests \ + --exclude governance-zagros-integration-tests \ + --exclude people-pezkuwichain-integration-tests \ + --exclude people-zagros-integration-tests \ + --exclude pezbridge-hub-pezkuwichain-integration-tests \ + --exclude pezbridge-hub-zagros-integration-tests + +# Emulated XCM integration tests — require WASM blobs, run separately with +# SKIP_WASM_BUILD=0. Uses the same CARGO_TARGET_DIR as test-partition jobs so +# Rust artifacts (deps/, jemalloc, rocksdb) are already warm from those jobs. +# WASM blobs land in debug/build//out/ — separate subtree. +test-emulated: + stage: test + tags: [pezkuwi-runner] + needs: [check-try-runtime] + variables: + CARGO_HOME: /root/.cargo + SKIP_WASM_BUILD: "0" + WASM_BUILD_NO_COLOR: "1" + WASM_BUILD_WORKSPACE_HINT: "$CI_PROJECT_DIR" + CARGO_INCREMENTAL: "0" + RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings -Cdebuginfo=1 -Clink-arg=-fuse-ld=lld" + before_script: + - rustup show + - rustc --version && cargo --version + - rustup target add wasm32v1-none + - export CACHE_KEY="$(cat Cargo.lock rust-toolchain.toml | md5sum | cut -c1-12)" + - export CARGO_TARGET_DIR="/cache/cargo-target/${CACHE_KEY}/test-release" + - mkdir -p "$CARGO_TARGET_DIR" + - find /cache/cargo-target -mindepth 1 -maxdepth 1 -type d ! -name "${CACHE_KEY}" -exec rm -rf {} + 2>/dev/null || true + - echo "CARGO_TARGET_DIR=$CARGO_TARGET_DIR (disk $(df -h /cache/cargo-target | tail -1 | awk '{print $3 "/" $2 " used, " $4 " free"}'))" + cache: [] + timeout: 420m + retry: + max: 1 + when: + - runner_system_failure + - unknown_failure + script: + - git config --global --add safe.directory '*' + - | + cargo nextest run --locked --no-fail-fast --cargo-quiet \ + -p asset-hub-pezkuwichain-integration-tests \ + -p asset-hub-zagros-integration-tests \ + -p collectives-zagros-integration-tests \ + -p coretime-pezkuwichain-integration-tests \ + -p coretime-zagros-integration-tests \ + -p governance-zagros-integration-tests \ + -p people-pezkuwichain-integration-tests \ + -p people-zagros-integration-tests \ + -p pezbridge-hub-pezkuwichain-integration-tests \ + -p pezbridge-hub-zagros-integration-tests + artifacts: + when: always + paths: [test-results-emulated.xml] + reports: + junit: test-results-emulated.xml + expire_in: 7 days + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_PIPELINE_SOURCE == "schedule" + - if: $CI_PIPELINE_SOURCE == "web" + when: manual wasm-check: stage: test