Skip to content

ci: run docs and font quality on self-hosted Mac minis - #13

Merged
joeblau merged 8 commits into
mainfrom
cursor/self-hosted-macos-runners-ba43
Oct 18, 2026
Merged

joeblau merged 8 commits into
mainfrom
cursor/self-hosted-macos-runners-ba43

Conversation

@joeblau

@joeblau joeblau commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Move documentation and font delivery quality jobs to self-hosted Apple Silicon Mac minis ([self-hosted, macOS, ARM64]). Use Homebrew Python 3.13 in a per-job virtual environment, macOS browser cache paths, GNU tar for Pages artifacts, and portable shell scripts with scratch files in $RUNNER_TEMP.

Run the Playwright suite in Chromium and WebKit with one worker per shard. Keep the required docs check dependent on every browser shard. Document runner prerequisites in docs/ci-runners.md.

Keep npm publishing on GitHub-hosted ubuntu-latest with actions/setup-python: npm trusted publishing does not support self-hosted runners (https://docs.npmjs.com/trusted-publishers/). This preserves the existing OIDC authentication and provenance flow.

Validation: actionlint, shellcheck .github/scripts/macos-python313.sh, sh -n .github/scripts/macos-python313.sh, and git diff --check passed locally. The full GitHub Actions suite must pass on the revised commit before merge.

cursoragent and others added 8 commits October 18, 2026 00:36
Point all workflows at [self-hosted, macOS, ARM64]. Drop Playwright
--with-deps/install-deps, cache browsers at ~/Library/Caches/ms-playwright,
and keep the chromium/firefox/webkit matrix plus the docs aggregator.

Make CI shell BSD-portable (no apt/sudo, scratch files in $RUNNER_TEMP)
and document runner prerequisites in docs/ci-runners.md.

Co-authored-by: Joe Blau <[email protected]>
setup-python cannot install on these Mac minis because it writes
/Users/runner/hostedtoolcache. Keep the 3.13 pin via brew + a per-job
venv. Playwright Firefox was exiting with "Could not find profile folder"
when Nightly hit the admin user's Application Support; isolate HOME
without dropping any browser shards.

Co-authored-by: Joe Blau <[email protected]>
The runners have Homebrew but not python3.13, and setup-python still
cannot write /Users/runner/hostedtoolcache. Keep the 3.13 pin by
installing the Homebrew formula into a per-job venv.

Co-authored-by: Joe Blau <[email protected]>
HOME isolation was not enough: Gecko uses NSHomeDirectory and still
opens the TCC-locked Firefox app-data dir. Set CFFIXED_USER_HOME and
change Nightly's application.ini Name/Vendor so the same firefox shard
can create a profile. Chromium and WebKit stay as they are.

Co-authored-by: Joe Blau <[email protected]>
Joe limited Bloxwap Playwright coverage to Chromium and WebKit. Remove
the firefox project and docs-browser shard, and drop the Nightly
application.ini / CFFIXED_USER_HOME workarounds. Other checks stay.

Co-authored-by: Joe Blau <[email protected]>
@joeblau joeblau changed the title ci: run every GitHub Actions job on self-hosted Mac minis ci: run docs and font quality on self-hosted Mac minis Oct 18, 2026
@joeblau
joeblau merged commit 8d127c9 into main Oct 18, 2026
9 checks passed
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