From 7190abb4e13968416e3c7a0d61d78925911447cb Mon Sep 17 00:00:00 2001 From: Agent Date: Thu, 2 Apr 2026 09:04:47 +0000 Subject: [PATCH] fix: restore smoke-init CI pipeline using mock Forgejo (#124) --- .woodpecker/smoke-init.yml | 2 +- tests/mock-forgejo.py | 6 ++---- tests/smoke-init.sh | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.woodpecker/smoke-init.yml b/.woodpecker/smoke-init.yml index 22437a9..6bb674d 100644 --- a/.woodpecker/smoke-init.yml +++ b/.woodpecker/smoke-init.yml @@ -32,7 +32,7 @@ steps: image: python:3-alpine commands: - apk add --no-cache bash curl jq git coreutils - - MOCK_FORGE_PORT=3001 python3 tests/mock-forgejo.py & + - MOCK_FORGE_PORT=3001 python3 tests/mock-forgejo.py > /tmp/mock.log 2>&1 & # Wait for mock to be ready - for i in $(seq 1 30); do curl -sf http://localhost:3001/api/v1/version >/dev/null 2>&1 && break || sleep 1; done - SMOKE_FORGE_URL=http://localhost:3001 FORGE_URL=http://localhost:3001 bash tests/smoke-init.sh diff --git a/tests/mock-forgejo.py b/tests/mock-forgejo.py index a31c8c6..ba0de4b 100755 --- a/tests/mock-forgejo.py +++ b/tests/mock-forgejo.py @@ -695,6 +695,7 @@ class ForgejoHandler(BaseHTTPRequestHandler): class ThreadingHTTPServer(ThreadingMixIn, HTTPServer): """Threaded HTTP server for handling concurrent requests.""" daemon_threads = True + allow_reuse_address = True def main(): @@ -702,10 +703,7 @@ def main(): global SHUTDOWN_REQUESTED port = int(os.environ.get("MOCK_FORGE_PORT", 3000)) - # Set SO_REUSEADDR before creating the server to allow port reuse - class ReusableHTTPServer(ThreadingHTTPServer): - allow_reuse_address = True - server = ReusableHTTPServer(("0.0.0.0", port), ForgejoHandler) + server = ThreadingHTTPServer(("0.0.0.0", port), ForgejoHandler) print(f"Mock Forgejo server starting on port {port}", file=sys.stderr) diff --git a/tests/smoke-init.sh b/tests/smoke-init.sh index 2ddb050..d37b633 100644 --- a/tests/smoke-init.sh +++ b/tests/smoke-init.sh @@ -372,7 +372,7 @@ if [ -n "$mock_state" ]; then fi # Verify labels were created - labels_total=$(echo "$mock_state" | jq '[.labels.values[] | length] | add // 0' 2>/dev/null) || labels_total=0 + labels_total=$(echo "$mock_state" | jq '[.labels | to_entries[].value | length] | add // 0' 2>/dev/null) || labels_total=0 if [ "$labels_total" -ge 5 ]; then pass "Mock state: ${labels_total} labels created (expected >= 5)" else