@@ -4,9 +4,9 @@ permissions: read-all
44
55on :
66 push :
7- branches : [ master ]
7+ branches : [master]
88 pull_request :
9- branches : [ master ]
9+ branches : [master]
1010
1111jobs :
1212 build :
2929
3030 - name : Check formatting
3131 run : |
32+ gofmt -w .
3233 unformatted=$(gofmt -l .)
3334 if [ -n "$unformatted" ]; then
3435 echo "Unformatted files:"
@@ -55,34 +56,47 @@ jobs:
5556 - name : Install dependencies
5657 run : go mod download
5758
58- - name : Start Knox server
59+ - name : Start Knox server with debug
5960 run : |
60- go run ./cmd/dev_server -http :8080 -https :9000 > knox_server.log 2>&1 &
61+ # Start server with debug output
62+ go run ./cmd/dev_server -http :8080 -https :9000 -debug > knox_server.log 2>&1 &
6163 echo $! > server.pid
62- sleep 5
64+
65+ # Wait for server to start (max 30 seconds)
66+ timeout 30 bash -c 'until curl -k -s -o /dev/null https://localhost:9000/healthcheck; do sleep 1; done' || \
67+ (echo "Server failed to start"; cat knox_server.log; exit 1)
68+
69+ # Show server status
6370 cat knox_server.log
71+ netstat -tulnp | grep -E '8080|9000' || true
6472
65- - name : Verify server is running
73+ - name : Verify server health
6674 run : |
67- curl -k https://localhost:9000/healthcheck || true
68- netstat -tulnp | grep 9000 || true
75+ curl -k -v https://localhost:9000/healthcheck
6976
7077 - name : Run security tests
7178 run : |
7279 # Test authentication requirement
73- curl -k -v https://localhost:9000/normal/path 2>&1 | grep "401 Unauthorized" || (echo "Auth test failed" && exit 1)
80+ if ! curl -k -v https://localhost:9000/normal/path 2>&1 | grep -q "401 Unauthorized"; then
81+ echo "Auth test failed - expected 401 Unauthorized"
82+ exit 1
83+ fi
7484
7585 # Test path traversal protection
76- curl -k -v https://localhost:9000/../../../etc/passwd 2>&1 | grep "404 Not Found" || (echo "Path traversal test failed" && exit 1)
86+ if ! curl -k -v https://localhost:9000/../../../etc/passwd 2>&1 | grep -q "404 Not Found"; then
87+ echo "Path traversal test failed - expected 404 Not Found"
88+ exit 1
89+ fi
7790
7891 - name : Stop server
92+ if : always()
7993 run : |
8094 kill $(cat server.pid) || true
8195 sleep 1
8296
83- - name : Upload logs
84- uses : actions/upload-artifact@v4
97+ - name : Upload server logs
8598 if : always()
99+ uses : actions/upload-artifact@v4
86100 with :
87101 name : knox_server_logs
88102 path : knox_server.log
0 commit comments