chore: update CI runners and dependencies for macOS and Windows#505
chore: update CI runners and dependencies for macOS and Windows#505kinyoklion merged 4 commits intomainfrom
Conversation
macos-13 has been deprecated and removed from GitHub Actions. Update all workflow files to use macos-15. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
…s CI The previous version's download URL was removed from slproweb.com, causing all Windows CI jobs to fail with 404 errors. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Adding |
The vendored foxy library is incompatible with Boost 1.90 (installed by default on macos-15 via Homebrew). Pin to boost@1.85 until foxy is updated to work with the newer Boost version. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
- sdk-release action: added mac_artifact_arch input (default x64) to
parameterize macOS artifact filenames (mac-clang-{arch}-*.zip)
- release-please.yml: use macos-15-large (x64) for existing matrix,
added separate arm64 jobs + provenance for client, server, server-redis
- manual-sdk-release-artifacts.yml: same pattern for manual releases
- Future releases will include both x64 and arm64 macOS artifacts
Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
|
aside: Boost pinning is temporary a followup PR will update the code and unpin it. |
| if: runner.os == 'macOS' | ||
| shell: bash | ||
| run: | | ||
| brew install boost |
There was a problem hiding this comment.
aside: Temporary PIN. Then there is a followup PR. I wanted to start with a cleanly working CI.
| if: runner.os == 'Windows' | ||
| shell: bash | ||
| run: | | ||
| choco install openssl --version 3.5.4 -y --no-progress |
There was a problem hiding this comment.
aside: chocolatey removes versions pretty consistently. This one is gone, so the builds break.
There was a problem hiding this comment.
aside: Adding an ARM arch release artifact. Previously it was only inter.
aside: We may consider dropping the intel version, but probably not until apple drops it in their latest OS.
| matrix: | ||
| # Each of the platforms for which release-artifacts need generated. | ||
| os: [ ubuntu-22.04, windows-2022, macos-13 ] | ||
| os: [ ubuntu-22.04, windows-2022, macos-15-large ] |
There was a problem hiding this comment.
aside: The large variant is intel.
The boost@1.85 pin was re-introduced when merging main (which contains PR #505's pinned version). This commit re-applies the unpin so macOS CI builds against the latest Homebrew Boost (1.90), exercising the new BOOST_VERSION >= 109000 code path in foxy. Co-Authored-By: rlamb@launchdarkly.com <kingdewman@gmail.com>
…506) ## Summary Updates the vendored `foxy` library to compile against Boost 1.90 (which removed three `boost::beast::http::field` enum values) while retaining backward compatibility with Boost 1.8x. Unpins macOS Homebrew Boost from the deprecated `boost@1.85` so it installs the latest version. **Foxy change:** Adds a `#if BOOST_VERSION >= 109000` guard in `export_connect_fields.hpp` around the `hop_by_hops` array. Boost 1.90 removed `proxy_authentication_info`, `proxy_features`, and `proxy_instruction` from `boost::beast::http::field`, so the Boost 1.90+ path uses an 8-element array without those fields. The pre-1.90 path is unchanged (11 elements). **Boost unpin:** Reverts `brew install boost@1.85` → `brew install boost` in `install-boost/action.yml`, so macOS CI builds against the latest Homebrew Boost (currently 1.90). This removes the `boost@1.85` pin introduced in PR #505, which had a Homebrew deprecation deadline of **2026-04-05**. Both `#if` branches are validated by CI: macOS builds use Boost 1.90 (`#if` path), Linux uses 1.81 and Windows uses 1.87 (`#else` path). All 36 CI checks pass. ## Review & Testing Checklist for Human - [x] **Unpinning strategy**: Unpinning means macOS CI will track Homebrew's latest Boost. Future Boost updates could introduce new breakages in vendored `foxy`. Confirm this is acceptable vs. pinning to `boost@1.90`. **Test plan:** CI validates both preprocessor branches across all three platforms. The macOS jobs passing confirm Boost 1.90 compatibility (including that `proxy_connection` was not removed alongside the other three fields). Linux and Windows jobs confirm the `#else` path still compiles correctly with older Boost versions. ### Notes - Requested by: @kinyoklion - [Link to Devin Session](https://app.devin.ai/sessions/20776de6453c4e8baa2e4486dfe9aaba) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > CI will now track Homebrew’s latest Boost on macOS, which can introduce future build breakages. The code change is a small compile-time guard but affects HTTP header filtering behavior across Boost versions. > > **Overview** > macOS CI now installs Homebrew’s default `boost` package instead of the pinned `boost@1.85`, so builds track the latest Boost release. > > The vendored `foxy` header `export_connect_fields.hpp` is updated for Boost 1.90+ by conditionally excluding the removed `boost::beast::http::field` enum values (`proxy_authentication_info`, `proxy_features`, `proxy_instruction`) via a `BOOST_VERSION >= 109000` guard, preserving the previous hop-by-hop header list for older Boost versions. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5442186. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
BEGIN_COMMIT_OVERRIDE
chore: Update CI runners and dependencies for macOS and Windows
chore: Add arm64 mac builds.
END_COMMIT_OVERRIDE
Summary
Updates CI infrastructure to fix broken macOS and Windows builds, and adds dual-architecture macOS release artifacts:
macOS runners: Replaced deprecated
macos-13withmacos-15across all 8 CI/test workflow files.macos-13has been fully removed from GitHub Actions and was causing all Mac jobs to be cancelled.Windows OpenSSL: Updated the chocolatey OpenSSL package from
3.5.4to3.6.1. The3.5.4installer was removed from slproweb.com's download server (returning 404), causing all Windows CI jobs to fail.macOS Boost pin: Pinned Homebrew Boost to
boost@1.85on macOS. The default Boost (1.90) onmacos-15is incompatible with the vendoredfoxylibrary — Boost 1.90 removed severalboost::beast::http::fieldmembers (proxy_authentication_info,proxy_features,proxy_instruction) thatfoxyreferences. A follow-up PR will update the vendored foxy code and remove the pin.Dual-architecture macOS release artifacts: Release workflows (
release-please.yml,manual-sdk-release-artifacts.yml) now produce both x64 and arm64 macOS binaries:mac-clang-x64-*.zip) built onmacos-15-large(Intel)mac-clang-arm64-*.zip) built onmacos-15(Apple Silicon)sdk-releasecomposite action accepts a newmac_artifact_archinput (default:x64) to parameterize artifact filenamesmacos-arm64-client-multiple-provenance.intoto.jsonl)All 37 CI checks pass (Linux, Windows, macOS).
Review & Testing Checklist for Human
macos-15-largerunner availability: Release workflows now usemacos-15-largefor x64 macOS builds. This is a paid larger runner — verify your GitHub org has this runner label configured. This cannot be validated by PR CI since release workflows only trigger on actual releases.hashes-macos-arm64which feeds into corresponding provenance jobs. Verify the output names match between the release and provenance jobs in bothrelease-please.ymlandmanual-sdk-release-artifacts.yml— these paths are only exercised during real releases.boost@1.85is marked deprecated in Homebrew and will be disabled on 2026-04-05. A follow-up PR to update the vendoredfoxylibrary and unpin Boost must be completed before that date.Suggested test plan: After merging, trigger a manual release artifact build via
manual-sdk-release-artifacts.ymlto validate that bothmacos-15-large(x64) andmacos-15(arm64) jobs succeed and produce correctly-named artifacts with provenance.Notes
foxyfor Boost 1.90 compatibility and remove theboost@1.85pin before 2026-04-05.Note
Medium Risk
CI-only changes, but switching macOS runners (and thus architecture/toolchain) and pinning core crypto/build dependencies can affect build outputs and release artifacts.
Overview
Updates GitHub Actions CI/release workflows to run on
macos-15instead of the removedmacos-13, including smoketests and release artifact builds.Adjusts dependency installation to keep builds green on the new runners: pins macOS Homebrew Boost to
boost@1.85and bumps the Windows Chocolatey OpenSSL package from3.5.4to3.6.1.Adds dual-architecture macOS release artifact support: x64 builds on
macos-15-largeand arm64 builds onmacos-15.Written by Cursor Bugbot for commit d0b80a8. This will update automatically on new commits. Configure here.