Skip to content

Add GitHub Actions CI (Win32, macOS, Linux)#32

Open
matthargett wants to merge 2 commits into
BabylonJS:mainfrom
rebeckerspecialties:github-actions-ci
Open

Add GitHub Actions CI (Win32, macOS, Linux)#32
matthargett wants to merge 2 commits into
BabylonJS:mainfrom
rebeckerspecialties:github-actions-ci

Conversation

@matthargett

Copy link
Copy Markdown

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.

⚠️ Depends on #31 — land that first. The Run Tests steps execute the UrlLibTests target that #31 introduces; on main as-is, the test steps would fail. (Build steps work standalone.)

Structure

Mirrors the JsRuntimeHost / BabylonNative workflow conventions so the matrix can grow the same way those repos' did:

  • ci.yml orchestrator (push/pull_request on main) calling reusable per-platform workflow_call files, with the family's job naming and section ordering (Win32 → macOS → Linux).
  • build-win32.ymlwindows-2022 (the explicit VS2022-generator pin both sibling repos adopted after the runner-image change), -A platform input, RelWithDebInfo with /m, crash-dump registry staging + dump artifact upload on failure, runs UrlLibTests.exe directly.
  • build-macos.yml — pinned xcode-select (16.4 / macos-latest, the pairing JsRuntimeHost runs), -G Xcode, runs the binary from Tests/RelWithDebInfo.
  • build-linux.yml — Ninja with explicit compiler inputs; Ubuntu_gcc and Ubuntu_clang jobs; installs libcurl4-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 in ci.yml when 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).

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.
Copilot AI review requested due to automatic review settings June 10, 2026 23:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Comment thread .github/workflows/build-win32.yml
Comment thread .github/workflows/build-win32.yml
Comment thread .github/workflows/build-macos.yml
@matthargett

Copy link
Copy Markdown
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants