From 132f89d3b3475f1245fcf4e5a67f3a1e7f5871c8 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Thu, 26 Mar 2026 15:34:47 +0000 Subject: [PATCH 1/8] generate tests fix --- hole-punch/lib/generate-tests.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/hole-punch/lib/generate-tests.sh b/hole-punch/lib/generate-tests.sh index 4df055c..275d72e 100755 --- a/hole-punch/lib/generate-tests.sh +++ b/hole-punch/lib/generate-tests.sh @@ -359,7 +359,7 @@ for relay_id in "${all_relay_ids[@]}"; do relay_secure["${relay_id}"]="${secure}" relay_muxers["${relay_id}"]="${muxers}" relay_dial_only["${relay_id}"]="${dial_only}" - if [ -n "${commit}" ]; then + if [ -n "${commit}" ] && [ "${commit}" != "null" ]; then relay_commit["${relay_id}"]="${commit}" fi done @@ -377,7 +377,7 @@ declare -A router_commit for router_id in "${all_router_ids[@]}"; do commit=$(yq eval ".routers[] | select (.id == \"${router_id}\") | .source.commit" "${IMAGES_YAML}" 2>/dev/null || echo "") - if [ -n "${commit}" ]; then + if [ -n "${commit}" ] && [ "${commit}" != "null" ]; then router_commit["${router_id}"]="${commit}" fi done @@ -409,7 +409,7 @@ for image_id in "${all_image_ids[@]}"; do image_secure["${image_id}"]="${secure}" image_muxers["${image_id}"]="${muxers}" image_dial_only["${image_id}"]="${dial_only}" - if [ -n "${commit}" ]; then + if [ -n "${commit}" ] && [ "${commit}" != "null" ]; then image_commit["${image_id}"]="${commit}" fi image_legacy["${image_id}"]="${legacy}" @@ -556,8 +556,8 @@ generate_tests_worker() { print_debug "selecting listener router: ${listener_router_id}" - # Iterate through all dialers - for dialer_id in "${all_image_ids[@]}"; do + # Iterate through this worker's chunk of dialers + for dialer_id in "${dialer_chunk[@]}"; do dialer_transports="${image_transports[$dialer_id]}" dialer_secure="${image_secure[$dialer_id]}" dialer_muxers="${image_muxers[$dialer_id]}" @@ -759,7 +759,7 @@ EOF imageName: ${relay_image_name} EOF if [ -n "${relay_commit}" ]; then - echo " snapshot: snapshots/${relay_commit}.zip" >> "${worker_selected}" + echo " snapshot: snapshots/${relay_commit}.zip" >> "${worker_ignored}" fi cat >> "${worker_ignored}" <> "${worker_selected}" + echo " snapshot: snapshots/${dialer_router_commit}.zip" >> "${worker_ignored}" fi cat >> "${worker_ignored}" <> "${worker_selected}" + echo " snapshot: snapshots/${listener_router_commit}.zip" >> "${worker_ignored}" fi fi @@ -939,7 +939,7 @@ EOF imageName: ${relay_image_name} EOF if [ -n "${relay_commit}" ]; then - echo " snapshot: snapshots/${relay_commit}.zip" >> "${worker_selected}" + echo " snapshot: snapshots/${relay_commit}.zip" >> "${worker_ignored}" fi cat >> "${worker_ignored}" <> "${worker_selected}" + echo " snapshot: snapshots/${dialer_router_commit}.zip" >> "${worker_ignored}" fi cat >> "${worker_ignored}" <> "${worker_selected}" + echo " snapshot: snapshots/${listener_router_commit}.zip" >> "${worker_ignored}" fi fi done From 77ab5f2403ea408763242a4a2c3ed44d287bb2ac Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Thu, 26 Mar 2026 15:34:58 +0000 Subject: [PATCH 2/8] add nim tcp --- hole-punch/images.yaml | 11 +++++++++++ lib/lib-test-filtering.sh | 1 + 2 files changed, 12 insertions(+) diff --git a/hole-punch/images.yaml b/hole-punch/images.yaml index b70d5de..4f2d13a 100644 --- a/hole-punch/images.yaml +++ b/hole-punch/images.yaml @@ -4,6 +4,8 @@ # Test Aliases - Define reusable patterns for test selection # Usage: --test-select "~linux" or --test-ignore "!~linux" test-aliases: + - alias: "nim" + value: "nim-v1.15" - alias: "failing" value: "rust-v0.56 x rust-v0.56" @@ -40,3 +42,12 @@ implementations: transports: [quic-v1, tcp, ws] secureChannels: [noise, tls] muxers: [yamux, mplex] + + - id: nim-v1.15 + source: + type: local + path: /Users/radoslawkaminski/src/ift/nim-libp2p + dockerfile: interop/hole-punching/Dockerfile + transports: [tcp] + secureChannels: [noise] + muxers: [yamux, mplex] diff --git a/lib/lib-test-filtering.sh b/lib/lib-test-filtering.sh index c040076..af44ebf 100755 --- a/lib/lib-test-filtering.sh +++ b/lib/lib-test-filtering.sh @@ -43,6 +43,7 @@ get_common() { # For each remaining list, keep only items that appear in it for list in "$@"; do local -A current_list_map + current_list_map=() # Build a map of items in current list for item in ${list}; do From 148284c3becab5cf97fbac5c29defeaa51e684d5 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Mon, 30 Mar 2026 16:26:22 +0100 Subject: [PATCH 3/8] update commit --- hole-punch/images.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hole-punch/images.yaml b/hole-punch/images.yaml index 4f2d13a..014d77d 100644 --- a/hole-punch/images.yaml +++ b/hole-punch/images.yaml @@ -45,8 +45,9 @@ implementations: - id: nim-v1.15 source: - type: local - path: /Users/radoslawkaminski/src/ift/nim-libp2p + type: github + repo: vacp2p/nim-libp2p + commit: dcc37ca05fc95e25f3c8de9062d2afd241252ca8 dockerfile: interop/hole-punching/Dockerfile transports: [tcp] secureChannels: [noise] From 6be736aeec2afa61be694ffa1f7f1c1bbc5a7ae5 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Mon, 30 Mar 2026 16:30:37 +0100 Subject: [PATCH 4/8] test workflow --- .github/workflows/hole-punch-interop-pr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/hole-punch-interop-pr.yml b/.github/workflows/hole-punch-interop-pr.yml index ba04644..732a090 100644 --- a/.github/workflows/hole-punch-interop-pr.yml +++ b/.github/workflows/hole-punch-interop-pr.yml @@ -76,7 +76,7 @@ concurrency: jobs: resolve-parameters: - runs-on: [self-hosted, linux, x64, ephemeral] + runs-on: ubuntu-latest outputs: test-select: ${{ steps.resolve.outputs.test-select }} test-ignore: ${{ steps.resolve.outputs.test-ignore }} @@ -175,7 +175,7 @@ jobs: run-tests: needs: resolve-parameters if: needs.resolve-parameters.outputs.should-run-tests == 'true' - runs-on: [self-hosted, linux, x64, ephemeral] + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 @@ -190,7 +190,7 @@ jobs: router-select: '${{ needs.resolve-parameters.outputs.router-select }}' router-ignore: '${{ needs.resolve-parameters.outputs.router-ignore }}' transport-ignore: '${{ needs.resolve-parameters.outputs.transport-ignore }}' - cache-dir: /srv/cache + cache-dir: ${{ runner.temp }}/cache snapshot: ${{ needs.resolve-parameters.outputs.snapshot }} export-docker-images: ${{ needs.resolve-parameters.outputs.export-docker-images }} force-matrix-rebuild: ${{ needs.resolve-parameters.outputs.force-matrix-rebuild }} From 98275f8a8ff9ba269b46be26e5113d10ea686e5a Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Mon, 30 Mar 2026 16:49:02 +0100 Subject: [PATCH 5/8] do not add negated pattern into test-ignore --- .github/workflows/hole-punch-interop-pr.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/hole-punch-interop-pr.yml b/.github/workflows/hole-punch-interop-pr.yml index 732a090..46b2d46 100644 --- a/.github/workflows/hole-punch-interop-pr.yml +++ b/.github/workflows/hole-punch-interop-pr.yml @@ -128,15 +128,10 @@ jobs: # Automatic trigger - use change detection outputs echo "test-select=${{ steps.detect.outputs.changed-impls }}" >> $GITHUB_OUTPUT - # Negate each implementation ID in the pipe-separated list - # Always include ~failing to skip known-broken tests - CHANGED_IMPLS="${{ steps.detect.outputs.changed-impls }}" - if [ -n "$CHANGED_IMPLS" ]; then - NEGATED_IMPLS=$(echo "$CHANGED_IMPLS" | sed 's/|/|!/g;s/^/!/') - echo "test-ignore=~failing|$NEGATED_IMPLS" >> $GITHUB_OUTPUT - else - echo "test-ignore=~failing" >> $GITHUB_OUTPUT - fi + # Always include ~failing to skip known-broken tests. + # Do NOT add negated implementation patterns to test-ignore here - + # that conflicts with test-select and can result in 0 selected tests. + echo "test-ignore=~failing" >> $GITHUB_OUTPUT echo "relay-select=${{ steps.detect.outputs.changed-relays }}" >> $GITHUB_OUTPUT From ee8b202b71b2db06fb897f80154a678478d886b2 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Tue, 31 Mar 2026 13:38:28 +0100 Subject: [PATCH 6/8] Revert "test workflow" This reverts commit 6be736aeec2afa61be694ffa1f7f1c1bbc5a7ae5. --- .github/workflows/hole-punch-interop-pr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/hole-punch-interop-pr.yml b/.github/workflows/hole-punch-interop-pr.yml index 46b2d46..14273d7 100644 --- a/.github/workflows/hole-punch-interop-pr.yml +++ b/.github/workflows/hole-punch-interop-pr.yml @@ -76,7 +76,7 @@ concurrency: jobs: resolve-parameters: - runs-on: ubuntu-latest + runs-on: [self-hosted, linux, x64, ephemeral] outputs: test-select: ${{ steps.resolve.outputs.test-select }} test-ignore: ${{ steps.resolve.outputs.test-ignore }} @@ -170,7 +170,7 @@ jobs: run-tests: needs: resolve-parameters if: needs.resolve-parameters.outputs.should-run-tests == 'true' - runs-on: ubuntu-latest + runs-on: [self-hosted, linux, x64, ephemeral] steps: - name: Checkout code uses: actions/checkout@v4 @@ -185,7 +185,7 @@ jobs: router-select: '${{ needs.resolve-parameters.outputs.router-select }}' router-ignore: '${{ needs.resolve-parameters.outputs.router-ignore }}' transport-ignore: '${{ needs.resolve-parameters.outputs.transport-ignore }}' - cache-dir: ${{ runner.temp }}/cache + cache-dir: /srv/cache snapshot: ${{ needs.resolve-parameters.outputs.snapshot }} export-docker-images: ${{ needs.resolve-parameters.outputs.export-docker-images }} force-matrix-rebuild: ${{ needs.resolve-parameters.outputs.force-matrix-rebuild }} From b899b0f982169f34beb1ef6d702240ccb5421f38 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Tue, 31 Mar 2026 13:41:01 +0100 Subject: [PATCH 7/8] update commit --- hole-punch/images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hole-punch/images.yaml b/hole-punch/images.yaml index 014d77d..abab006 100644 --- a/hole-punch/images.yaml +++ b/hole-punch/images.yaml @@ -47,7 +47,7 @@ implementations: source: type: github repo: vacp2p/nim-libp2p - commit: dcc37ca05fc95e25f3c8de9062d2afd241252ca8 + commit: 39902922cf718768a18fbe07482d8ccb0a2dc351 dockerfile: interop/hole-punching/Dockerfile transports: [tcp] secureChannels: [noise] From 4fd850a04ee5e20d2f4ff4e699f1dabe6e932523 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Mon, 4 May 2026 14:31:17 +0100 Subject: [PATCH 8/8] update commit --- hole-punch/images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hole-punch/images.yaml b/hole-punch/images.yaml index abab006..a9ffe5d 100644 --- a/hole-punch/images.yaml +++ b/hole-punch/images.yaml @@ -47,7 +47,7 @@ implementations: source: type: github repo: vacp2p/nim-libp2p - commit: 39902922cf718768a18fbe07482d8ccb0a2dc351 + commit: 1bdf2f67971529e8bee01252230bdb00ab785ef7 dockerfile: interop/hole-punching/Dockerfile transports: [tcp] secureChannels: [noise]