mirror of
https://github.com/Tencent/WeKnora.git
synced 2026-08-29 02:04:30 +08:00
fix(ci): make DocReader client tests runnable in PR checks
Start the DocReader gRPC server in the DocReader workflow, skip client integration tests when the server is unavailable, exclude docreader packages from the App workflow test scope, and trigger DocReader checks on go.mod/go.sum changes.
This commit is contained in:
@@ -8,7 +8,6 @@ on:
|
||||
- "!cli/**"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
- ".golangci.yml"
|
||||
- "Makefile"
|
||||
- "config/**"
|
||||
- "migrations/**"
|
||||
@@ -22,7 +21,6 @@ on:
|
||||
- "!cli/**"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
- ".golangci.yml"
|
||||
- "Makefile"
|
||||
- "config/**"
|
||||
- "migrations/**"
|
||||
@@ -81,7 +79,7 @@ jobs:
|
||||
run: go vet ./...
|
||||
|
||||
- name: Test
|
||||
run: go test ./...
|
||||
run: go test $(go list ./... | grep -v '/docreader/')
|
||||
|
||||
- name: Build server
|
||||
run: go build ./cmd/server
|
||||
|
||||
@@ -5,6 +5,8 @@ on:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "docreader/**"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
- "testdata/**"
|
||||
- "packages/**"
|
||||
- "docker/Dockerfile.docreader"
|
||||
@@ -13,6 +15,8 @@ on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "docreader/**"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
- "testdata/**"
|
||||
- "packages/**"
|
||||
- "docker/Dockerfile.docreader"
|
||||
@@ -63,5 +67,26 @@ jobs:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
cache-dependency-path: go.sum
|
||||
|
||||
- name: Start DocReader gRPC server
|
||||
run: |
|
||||
uv run --project docreader --python ${{ env.PYTHON_VERSION }} python -m docreader.main &
|
||||
echo $! > /tmp/docreader.pid
|
||||
for i in $(seq 1 30); do
|
||||
if nc -z 127.0.0.1 50051 2>/dev/null; then
|
||||
echo "DocReader gRPC server is ready"
|
||||
exit 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
echo "DocReader gRPC server failed to start"
|
||||
exit 1
|
||||
|
||||
- name: Run Go client tests
|
||||
run: go test ./docreader/client ./docreader/proto
|
||||
|
||||
- name: Stop DocReader gRPC server
|
||||
if: always()
|
||||
run: |
|
||||
if [ -f /tmp/docreader.pid ]; then
|
||||
kill "$(cat /tmp/docreader.pid)" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
@@ -16,12 +16,26 @@ func init() {
|
||||
log.Println("INFO: Initializing DocReader client tests")
|
||||
}
|
||||
|
||||
func TestReadURL(t *testing.T) {
|
||||
func requireLiveDocReaderClient(t *testing.T) *Client {
|
||||
t.Helper()
|
||||
|
||||
client, err := NewClient("localhost:50051")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create client: %v", err)
|
||||
}
|
||||
defer client.Close()
|
||||
t.Cleanup(func() { client.Close() })
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
|
||||
defer cancel()
|
||||
if _, err := client.ListEngines(ctx, &proto.ListEnginesRequest{}); err != nil {
|
||||
t.Skipf("DocReader gRPC server not available at localhost:50051: %v", err)
|
||||
}
|
||||
|
||||
return client
|
||||
}
|
||||
|
||||
func TestReadURL(t *testing.T) {
|
||||
client := requireLiveDocReaderClient(t)
|
||||
client.SetDebug(true)
|
||||
|
||||
startTime := time.Now()
|
||||
@@ -47,11 +61,7 @@ func TestReadURL(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestReadFile(t *testing.T) {
|
||||
client, err := NewClient("localhost:50051")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create client: %v", err)
|
||||
}
|
||||
defer client.Close()
|
||||
client := requireLiveDocReaderClient(t)
|
||||
client.SetDebug(true)
|
||||
|
||||
fileContent, err := os.ReadFile("../testdata/test.md")
|
||||
|
||||
Reference in New Issue
Block a user