Skip to content

Refactor client integration testing workflow to build ql-mcp-client before running client integration tests#248

Merged
data-douser merged 3 commits intonextfrom
dd/build-and-test-client/1
Apr 13, 2026
Merged

Refactor client integration testing workflow to build ql-mcp-client before running client integration tests#248
data-douser merged 3 commits intonextfrom
dd/build-and-test-client/1

Conversation

@data-douser
Copy link
Copy Markdown
Collaborator

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:

  • The workflow file .github/workflows/client-integration-tests.yml is renamed to .github/workflows/build-and-test-client.yml, and its jobs/steps are reorganized for clarity and maintainability. A new build-and-test-client job is added to run client build, unit tests, and lint before integration tests, ensuring issues are caught earlier in the pipeline. [1] [2]
  • Job/step names are standardized (e.g., removing redundant "MCP Integration Tests -" prefixes), and summaries are improved for better readability in GitHub Actions. [1] [2] [3] [4] [5] [6] [7]

Job Dependency and Execution Flow:

  • The integration-tests job now depends on the new build-and-test-client job, ensuring that integration tests only run if the client build and unit tests succeed.

Documentation and Reference Updates:

  • References to the workflow file in .github/skills/validate-ql-mcp-server-tools-queries/SKILL.md are updated to match the new workflow name.

Build Script Updates:

  • The build script in package.json is updated to ensure the client is built using make -C client build as 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.

- 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
@data-douser data-douser self-assigned this Apr 13, 2026
@data-douser data-douser requested a review from enyil as a code owner April 13, 2026 19:20
@data-douser data-douser added the bug Something isn't working label Apr 13, 2026
@data-douser data-douser requested a review from a team as a code owner April 13, 2026 19:20
@data-douser data-douser added enhancement New feature or request testing labels Apr 13, 2026
Copilot AI review requested due to automatic review settings April 13, 2026 19:20
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 build to build the Go client via make -C client build.
  • Restructures the client workflow to add a build-and-test-client gate job before integration-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-tests now has needs: build-and-test-client, but build-and-test-client is 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 splitting build-and-test-client into 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

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 a build-and-test-client gating job.
  • Updated root package.json build script to also build the Go client via make -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

Copy link
Copy Markdown
Collaborator Author

@data-douser data-douser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-client job and wires integration-tests to depend on it in .github/workflows/build-and-test-client.yml.
  • Updates the root npm run build to build the Go client via make -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

@data-douser data-douser merged commit 5a4d6b5 into next Apr 13, 2026
16 checks passed
@data-douser data-douser deleted the dd/build-and-test-client/1 branch April 13, 2026 23:25
@data-douser data-douser linked an issue Apr 13, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include ql-mcp-client in root build script and refactor CI workflow

2 participants