From 7566cc09f1e545e4ebaba015e743e9b8b54eb73e Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Wed, 1 Apr 2026 10:26:53 +0100 Subject: [PATCH 1/2] test workflow --- .github/workflows/hole-punch-interop-pr.yml | 6 +++--- hole-punch/images/linux/run.sh | 6 +++--- hole-punch/images/rust/v0.56/run-peer.sh | 7 ++++++- hole-punch/images/rust/v0.56/run-relay.sh | 8 ++++++-- hole-punch/lib/run-single-test.sh | 20 -------------------- 5 files changed, 18 insertions(+), 29 deletions(-) diff --git a/.github/workflows/hole-punch-interop-pr.yml b/.github/workflows/hole-punch-interop-pr.yml index 14273d70..e6374e2a 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 }} @@ -170,7 +170,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 @@ -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: /srv/cache + cache-dir: /tmp/hp-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 }} diff --git a/hole-punch/images/linux/run.sh b/hole-punch/images/linux/run.sh index 7885ec92..e2a78d23 100644 --- a/hole-punch/images/linux/run.sh +++ b/hole-punch/images/linux/run.sh @@ -21,9 +21,9 @@ if [ -z "$WAN_IP" ] || [ -z "$WAN_SUBNET" ] || [ -z "$LAN_IP" ] || [ -z "$LAN_SU exit 1 fi -# Define interfaces -WAN_IF="wan0" -LAN_IF="lan0" +# Detect interfaces by IP (interface_name requires Docker Engine v28.1+) +WAN_IF=$(ip -o addr show | awk -v ip="${WAN_IP}" '$4 ~ ("^" ip "/") {print $2; exit}') +LAN_IF=$(ip -o addr show | awk -v ip="${LAN_IP}" '$4 ~ ("^" ip "/") {print $2; exit}') echo "Configuration:" echo " WAN Interface: $WAN_IF" diff --git a/hole-punch/images/rust/v0.56/run-peer.sh b/hole-punch/images/rust/v0.56/run-peer.sh index 08c4e3cd..408adae7 100644 --- a/hole-punch/images/rust/v0.56/run-peer.sh +++ b/hole-punch/images/rust/v0.56/run-peer.sh @@ -1,9 +1,14 @@ #!/usr/bin/env bash set -e +# Detect LAN interface by peer IP (interface_name requires Docker Engine v28.1+) +PEER_IP="${DIALER_IP:-${LISTENER_IP}}" +LAN_IF=$(ip -o addr show | awk -v ip="${PEER_IP}" '$4 ~ ("^" ip "/") {print $2; exit}') +echo "LAN interface: ${LAN_IF} (peer IP: ${PEER_IP})" >&2 + # Set route to relay subnet echo "Setting route to relay subnet ${WAN_SUBNET} via ${WAN_ROUTER_IP}" >&2 -ip route add "${WAN_SUBNET}" via "${WAN_ROUTER_IP}" dev lan0 +ip route add "${WAN_SUBNET}" via "${WAN_ROUTER_IP}" dev "${LAN_IF}" # Execute the peer binary, passing through all arguments exec /usr/local/bin/peer "$@" diff --git a/hole-punch/images/rust/v0.56/run-relay.sh b/hole-punch/images/rust/v0.56/run-relay.sh index aaf78c40..b108f2e6 100644 --- a/hole-punch/images/rust/v0.56/run-relay.sh +++ b/hole-punch/images/rust/v0.56/run-relay.sh @@ -1,13 +1,17 @@ #!/usr/bin/env bash set -e +# Detect WAN interface by relay IP (interface_name requires Docker Engine v28.1+) +WAN_IF=$(ip -o addr show | awk -v ip="${RELAY_IP}" '$4 ~ ("^" ip "/") {print $2; exit}') +echo "WAN interface: ${WAN_IF} (relay IP: ${RELAY_IP})" >&2 + # Set route to dialer subnet echo "Setting route to dialer subnet ${DIALER_LAN_SUBNET} via ${DIALER_ROUTER_IP}" >&2 -ip route add "${DIALER_LAN_SUBNET}" via "${DIALER_ROUTER_IP}" dev wan0 +ip route add "${DIALER_LAN_SUBNET}" via "${DIALER_ROUTER_IP}" dev "${WAN_IF}" # Set route to listener subnet echo "Setting route to listener subnet ${LISTENER_LAN_SUBNET} via ${LISTENER_ROUTER_IP}" >&2 -ip route add "${LISTENER_LAN_SUBNET}" via "${LISTENER_ROUTER_IP}" dev wan0 +ip route add "${LISTENER_LAN_SUBNET}" via "${LISTENER_ROUTER_IP}" dev "${WAN_IF}" # Execute the relay binary, passing through all arguments exec /usr/local/bin/relay "$@" diff --git a/hole-punch/lib/run-single-test.sh b/hole-punch/lib/run-single-test.sh index 57904344..c33032df 100755 --- a/hole-punch/lib/run-single-test.sh +++ b/hole-punch/lib/run-single-test.sh @@ -255,10 +255,8 @@ services: networks: wan: ipv4_address: ${RELAY_IP} - interface_name: wan0 gw_priority: 1000 hole-punch-network: - interface_name: redis0 gw_priority: 100 cap_add: - NET_ADMIN @@ -272,11 +270,9 @@ ${RELAY_ENV} networks: wan: ipv4_address: ${DIALER_ROUTER_WAN_IP} - interface_name: wan0 gw_priority: 1000 lan-dialer: ipv4_address: ${DIALER_ROUTER_LAN_IP} - interface_name: lan0 gw_priority: 100 cap_add: - NET_ADMIN @@ -298,11 +294,9 @@ ${DIALER_ROUTER_ENV} networks: wan: ipv4_address: ${LISTENER_ROUTER_WAN_IP} - interface_name: wan0 gw_priority: 1000 lan-listener: ipv4_address: ${LISTENER_ROUTER_LAN_IP} - interface_name: lan0 gw_priority: 100 cap_add: - NET_ADMIN @@ -324,10 +318,8 @@ ${LISTENER_ROUTER_ENV} networks: lan-dialer: ipv4_address: ${DIALER_IP} - interface_name: lan0 gw_priority: 1000 hole-punch-network: - interface_name: redis0 gw_priority: 1000 cap_add: - NET_ADMIN @@ -345,10 +337,8 @@ ${DIALER_ENV} networks: lan-listener: ipv4_address: ${LISTENER_IP} - interface_name: lan0 gw_priority: 1000 hole-punch-network: - interface_name: redis0 gw_priority: 1000 cap_add: - NET_ADMIN @@ -392,10 +382,8 @@ services: networks: wan: ipv4_address: ${RELAY_IP} - interface_name: wan0 gw_priority: 1000 hole-punch-network: - interface_name: redis0 gw_priority: 100 cap_add: - NET_ADMIN @@ -409,11 +397,9 @@ ${RELAY_ENV} networks: wan: ipv4_address: ${DIALER_ROUTER_WAN_IP} - interface_name: wan0 gw_priority: 1000 lan-dialer: ipv4_address: ${DIALER_ROUTER_LAN_IP} - interface_name: lan0 gw_priority: 100 cap_add: - NET_ADMIN @@ -435,11 +421,9 @@ ${DIALER_ROUTER_ENV} networks: wan: ipv4_address: ${LISTENER_ROUTER_WAN_IP} - interface_name: wan0 gw_priority: 1000 lan-listener: ipv4_address: ${LISTENER_ROUTER_LAN_IP} - interface_name: lan0 gw_priority: 100 cap_add: - NET_ADMIN @@ -461,10 +445,8 @@ ${LISTENER_ROUTER_ENV} networks: lan-dialer: ipv4_address: ${DIALER_IP} - interface_name: lan0 gw_priority: 1000 hole-punch-network: - interface_name: redis0 gw_priority: 1000 cap_add: - NET_ADMIN @@ -481,10 +463,8 @@ ${DIALER_ENV} networks: lan-listener: ipv4_address: ${LISTENER_IP} - interface_name: lan0 gw_priority: 1000 hole-punch-network: - interface_name: redis0 gw_priority: 1000 cap_add: - NET_ADMIN From a5a52709c0fa7d507ed92800d82359c635793791 Mon Sep 17 00:00:00 2001 From: Radoslaw Kaminski Date: Wed, 1 Apr 2026 10:54:37 +0100 Subject: [PATCH 2/2] 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 abab0064..03c97a1e 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: bfa31f8de9a07c7a6632eb3d3725cdc2e647b5c7 dockerfile: interop/hole-punching/Dockerfile transports: [tcp] secureChannels: [noise]