浏览代码

Proxy test (#2172)

* Add proxy test on CI

* Add Brotli and Zstd dev packages to proxy test workflow

* Fix Docker Compose command for GitHub Actions compatibility

* Add proxy readiness check and netcat dependency

* Use netcat-openbsd instead of virtual netcat package

* Add proxy startup delay and debug logging
yhirose 7 月之前
父节点
当前提交
145fc8b021
共有 3 个文件被更改,包括 31 次插入3 次删除
  1. 20 0
      .github/workflows/test_proxy.yaml
  2. 1 1
      .gitignore
  3. 10 2
      test/Makefile

+ 20 - 0
.github/workflows/test_proxy.yaml

@@ -0,0 +1,20 @@
+name: Proxy Test
+
+on: [push, pull_request]
+
+jobs:
+  test-proxy:
+    runs-on: ubuntu-latest
+    if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
+    
+    steps:
+    - uses: actions/checkout@v3
+    
+    - name: Install dependencies
+      run: |
+        sudo apt-get update
+        sudo apt-get install -y build-essential libssl-dev zlib1g-dev libcurl4-openssl-dev libbrotli-dev libzstd-dev netcat-openbsd
+        
+    - name: Run proxy tests
+      run: |
+        cd test && make proxy

+ 1 - 1
.gitignore

@@ -42,4 +42,4 @@ ipch
 *.pyc
 .*
 !/.gitattributes
-!/.travis.yml
+!/.github

+ 10 - 2
test/Makefile

@@ -53,12 +53,20 @@ all : test test_split
 proxy : test_proxy
 	@echo "Starting proxy server..."
 	cd proxy && \
-	docker-compose up -d
+	docker compose up -d
+	@echo "Waiting for proxy to be ready..."
+	@until nc -z localhost 3128 && nc -z localhost 3129; do sleep 1; done
+	@echo "Proxy servers are ready, waiting additional 5 seconds for full startup..."
+	@sleep 5
+	@echo "Checking proxy server status..."
+	@cd proxy && docker compose ps
+	@echo "Checking proxy server logs..."
+	@cd proxy && docker compose logs --tail=20
 	@echo "Running proxy tests..."
 	./test_proxy; \
 	exit_code=$$?; \
 	echo "Stopping proxy server..."; \
-	docker-compose down; \
+	cd proxy && docker compose down; \
 	exit $$exit_code
 
 test : test.cc include_httplib.cc ../httplib.h Makefile cert.pem