[Do not merge] Test MacOS installation on CircleCI#280
Draft
[Do not merge] Test MacOS installation on CircleCI#280
Conversation
- Refactor integration_tests to use Boost.Process V2 when available (1.80+), fallback to V1 for older versions. - Update waf-tools/boost.py, link to boost_process when necessary (i.e. V2) - Also do not link to boost_system (it's header-only since 1.69, library stub removed since 1.89)
… images (alpine:3.18 + Boost 1.82) Prior to Boost 1.86, V2 failed to compile on Alpine Linux (musl-libc) See boostorg/process#376
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.
Description
This PR adds job
build-test-macosto the CircleCI workflow.It essentially reproduces updated Apple MacBook instructions from e65e666, i.e. installs dependencies via
homebrewand then buildsElemental,MPSolve, andSDPB.Why [Do not merge]?
TL;DR it's too expensive.
The job runs on
m4pro.mediummachine, the latest xcode version26.1.1.It takes about 11 minutes, see e.g. https://app.circleci.com/pipelines/github/davidsd/sdpb/464/workflows/8e3c997c-3ffb-403c-a37b-cec4250d5893/jobs/924
It slightly faster than other jobs (build-test-linux-arm64 and build-test-linux-amd64), but the problem is the credit usage:
Linux Large VMs (x86 and arm64) cost 20 credit/min, and M4 Pro Medium costs 200 credits/min.
See https://circleci.com/pricing/price-list/
According to Pricing FAQ,
Which means that MacOS testing is too expensive: we'll run out of the monthly limit of credits in less that 15 pushes to SDPB repo.
So, the idea is to keep this branch around and occasionally merge master into it (updating installation commands accordingly) to check if MacOS build still works.
Potential optimization
Note that building SDPB takes only 1 minute and running tests - also 1 minute; the most expensive step is Elemental (7m20s).
So, if necessary, we could store prebuilt Elemental+MPSolve in persistent storage, and only compile SDPB each time. This way, each test would cost only 400 credits (similar to 20-minute x86 and ARM tests).