Refactor client integration testing workflow to build ql-mcp-client before running client integration tests#248
Conversation
- Rename client-integration-tests.yml to build-and-test-client.yml to match existing patterns (build-and-test-extension.yml, build-server.yml) - Add build-and-test-client job: fast Go build + unit tests + lint on ubuntu/windows (no CodeQL required), gates integration tests via needs: - Simplify step names (drop verbose "MCP Integration Tests -" prefix) - Add make -C client build to root npm run build script - Update SKILL.md reference to new workflow filename
There was a problem hiding this comment.
Pull request overview
This PR refactors the client CI workflow so the Go client is built/unit-tested/linted before running the heavier client integration tests, and updates the root build script and documentation to match.
Changes:
- Updates root
npm run buildto build the Go client viamake -C client build. - Restructures the client workflow to add a
build-and-test-clientgate job beforeintegration-tests, and standardizes job/step naming and summaries. - Updates skill documentation to reference the renamed workflow file.
Show a summary per file
| File | Description |
|---|---|
| package.json | Adds client build (make -C client build) to the root build script for consistency with CI and desired build behavior. |
| .github/workflows/build-and-test-client.yml | Introduces a dedicated build/unit-test/lint job and makes integration tests depend on it; also renames/cleans up steps and summaries. |
| .github/skills/validate-ql-mcp-server-tools-queries/SKILL.md | Updates workflow filename reference for CODEQL_PATH validation documentation. |
Copilot's findings
Comments suppressed due to low confidence (1)
.github/workflows/build-and-test-client.yml:70
integration-testsnow hasneeds: build-and-test-client, butbuild-and-test-clientis a matrix job. In GitHub Actions this means every integration-test matrix entry waits for all build/unit-test/lint runs (both Ubuntu and Windows) to finish, reducing parallelism and increasing total CI time. Consider splittingbuild-and-test-clientinto per-OS jobs (or folding build/unit/lint into the integration-test job) so each OS’s integration tests can start as soon as its corresponding build/unit-test gate completes.
- Files reviewed: 3/3 changed files
- Comments generated: 1
There was a problem hiding this comment.
Pull request overview
Refactors the client CI workflow to add a fast build/unit-test/lint gate before running heavier client integration tests, and updates root build scripting/docs to ensure the Go client is built as part of the main project build.
Changes:
- Renamed/restructured the client workflow into
.github/workflows/build-and-test-client.yml, adding abuild-and-test-clientgating job. - Updated root
package.jsonbuildscript to also build the Go client viamake -C client build. - Updated internal skill documentation to reference the new workflow file.
Show a summary per file
| File | Description |
|---|---|
| package.json | Ensures root build includes the Go client build step. |
| client/Makefile | Adjusts Windows SHELL selection to prefer Git Bash over WSL’s bash.exe. |
| .github/workflows/build-and-test-client.yml | Adds a build/unit-test/lint job that gates integration tests; renames/standardizes step naming and summaries. |
| .github/skills/validate-ql-mcp-server-tools-queries/SKILL.md | Updates workflow reference to the new filename. |
Copilot's findings
- Files reviewed: 4/4 changed files
- Comments generated: 1
There was a problem hiding this comment.
Pull request overview
Refactors the client CI workflow to add a fast “build + unit test + lint” gate before running heavier client integration tests, and aligns the root build script/documentation so the Go client is built as part of normal project builds.
Changes:
- Adds a new
build-and-test-clientjob and wiresintegration-teststo depend on it in.github/workflows/build-and-test-client.yml. - Updates the root
npm run buildto build the Go client viamake -C client build. - Updates Makefile commentary and documentation references to the renamed workflow.
Show a summary per file
| File | Description |
|---|---|
| package.json | Root build now includes building the Go client via make. |
| client/Makefile | Adds Windows shell-resolution guidance related to Git Bash vs WSL bash.exe. |
| .github/workflows/build-and-test-client.yml | Reorganized workflow; introduces build/unit-test/lint gate job and standardizes naming. |
| .github/skills/validate-ql-mcp-server-tools-queries/SKILL.md | Updates workflow filename reference for CODEQL_PATH validation. |
Copilot's findings
- Files reviewed: 4/4 changed files
- Comments generated: 1
Closes #247.
Summary of Changes
This pull request refactors and improves the client build and test workflow, enhances clarity in job and step names, and ensures the client build is properly integrated in the project scripts. The main changes include renaming and restructuring the workflow file, adding a dedicated client build-and-test job, and updating documentation and scripts to match these changes.
Outline of Changes
Workflow and Build System Improvements:
.github/workflows/client-integration-tests.ymlis renamed to.github/workflows/build-and-test-client.yml, and its jobs/steps are reorganized for clarity and maintainability. A newbuild-and-test-clientjob is added to run client build, unit tests, and lint before integration tests, ensuring issues are caught earlier in the pipeline. [1] [2]Job Dependency and Execution Flow:
integration-testsjob now depends on the newbuild-and-test-clientjob, ensuring that integration tests only run if the client build and unit tests succeed.Documentation and Reference Updates:
.github/skills/validate-ql-mcp-server-tools-queries/SKILL.mdare updated to match the new workflow name.Build Script Updates:
buildscript inpackage.jsonis updated to ensure the client is built usingmake -C client buildas part of the main build process, improving consistency across environments.These changes collectively improve CI reliability, clarity, and maintainability, and ensure the documentation and build scripts are consistent with the updated workflow structure.