Add GitHub Actions CI (Win32, macOS, Linux)#32
Open
matthargett wants to merge 2 commits into
Open
Conversation
ci.yml orchestrator calling reusable per-platform workflow_call files, mirroring the JsRuntimeHost/BabylonNative conventions: checkout@v5, timeout-minutes, Ninja with explicit gcc and clang jobs on Linux, pinned Xcode selection with -G Xcode on macOS, windows-2022 (VS2022 generator pin) with crash-dump staging on Win32, Build/<platform> dirs, and running the test binary directly. The Run Tests steps exercise the UrlLibTests target introduced by BabylonJS#31; this PR should land after it.
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a GitHub Actions CI pipeline that runs build + test jobs across Windows, macOS, and Linux using reusable workflows.
Changes:
- Introduces a top-level CI workflow that orchestrates platform-specific reusable workflows.
- Adds standalone reusable workflows for Windows (CMake/MSBuild), macOS (Xcode generator), and Linux (Ninja).
- Adds Windows failure artifact upload for crash dumps.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| .github/workflows/ci.yml | Orchestrates OS builds via reusable workflows on push/PR to main. |
| .github/workflows/build-win32.yml | Windows build/test job with crash dump collection and upload. |
| .github/workflows/build-macos.yml | macOS build/test job selecting a specific Xcode version. |
| .github/workflows/build-linux.yml | Linux build/test job with selectable compiler inputs and Ninja builds. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This was referenced Jun 10, 2026
Closed
Author
|
Post-split validation: these exact workflow files running against #31's branch (combined on the fork mirror rebeckerspecialties#2) — all four jobs green: https://github.com/rebeckerspecialties/UrlLib/actions/runs/27313677186 |
WER does not reliably create a custom DumpFolder path itself, so a crash before the failure-staging step could lose the dump. (Pattern inherited from JsRuntimeHost's build-win32.yml, which has the same latent gap.)
matthargett
added a commit
to rebeckerspecialties/UrlLib
that referenced
this pull request
Jun 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds GitHub Actions CI to UrlLib (the repo previously had none), split out of #31 so the infrastructure can be reviewed on its own merits.
Structure
Mirrors the JsRuntimeHost / BabylonNative workflow conventions so the matrix can grow the same way those repos' did:
ci.ymlorchestrator (push/pull_requestonmain) calling reusable per-platformworkflow_callfiles, with the family's job naming and section ordering (Win32 → macOS → Linux).build-win32.yml—windows-2022(the explicit VS2022-generator pin both sibling repos adopted after the runner-image change),-Aplatform input,RelWithDebInfowith/m, crash-dump registry staging + dump artifact upload on failure, runsUrlLibTests.exedirectly.build-macos.yml— pinnedxcode-select(16.4 /macos-latest, the pairing JsRuntimeHost runs),-G Xcode, runs the binary fromTests/RelWithDebInfo.build-linux.yml— Ninja with explicit compiler inputs;Ubuntu_gccandUbuntu_clangjobs; installslibcurl4-openssl-dev.actions/checkout@v5,timeout-minutes: 15,Build/<platform>dirs throughout.Starter matrix is
Win32_x64+macOS_Xcode164+Ubuntu_gcc/Ubuntu_clang; Win32_x86, UWP, and Android jobs are three-line additions inci.ymlwhen wanted.Verification
All four jobs green against #31's branch on the fork mirror (rebeckerspecialties#1): https://github.com/rebeckerspecialties/UrlLib/actions/runs/27312871316 — including the curl error-path assertions on Linux and the Windows run (1 real pass + 5 explicit
GTEST_SKIPs documenting that the Windows backend doesn't populate transport-error detail yet).