ci: added macOS build and unit-test job - #134
Conversation
macOS support had no enforcement, so any change could silently break it. A macos-15 (arm64) job builds its own Darwin-scoped sysroot caches and runs the full make test flow for both architectures on every push. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Current version of PR was reviewed by /review-bugbot on Jul 27, 14:26 PDT. It flagged 0 findings. Bugbot on commit |
checksharedmods runs the build interpreter with PYTHONPATH into the cross-build tree, so its own imports can dlopen cross-built Linux ELF modules and crash on macOS build pythons with dynamic stdlib modules. The guard exits before any shadowable import; Linux hosts run the check unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort 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.
Reviewed by Cursor Bugbot for commit 2894467. Configure here.
| - name: Run unit tests | ||
| env: | ||
| STLX_TEST_TIMEOUT: "300" | ||
| run: make test ARCH=${{ matrix.arch }} 2>&1 | tee test-log-macos-${{ matrix.arch }}.txt |
There was a problem hiding this comment.
Missing GNU timeout on macOS
High Severity · Logic Bug
The macos-tests job fails with a false timeout because the timeout command used in scripts/run_tests.sh isn't found. macOS doesn't have a native timeout utility, and although make deps installs GNU coreutils (as gtimeout), the workflow doesn't add the necessary gnubin directory to the PATH for it to be accessible.
Reviewed by Cursor Bugbot for commit 2894467. Configure here.


Summary
macos-15(arm64) job runsmake depsand the fullmake testflow for both architectures on every push, with Darwin-scoped sysroot caches (deliberately not shared with the ubuntu jobs, so the Darwin build paths stay continuously exercised).Made with Cursor