Skip to content

ci(build): run macOS x86_64 lane on self-hosted c2pool-mac-intel runner (#42) - #100

Merged
frstrtr merged 2 commits into
masterfrom
ci-steward/macos-intel-lane
Jun 17, 2026
Merged

ci(build): run macOS x86_64 lane on self-hosted c2pool-mac-intel runner (#42)#100
frstrtr merged 2 commits into
masterfrom
ci-steward/macos-intel-lane

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 16, 2026

Copy link
Copy Markdown
Owner

What

Convert the single arm64-only macos job in build.yml into an arch matrix:

arch runner hosting
arm64 macos-14 GitHub-hosted (unchanged)
x86_64 [self-hosted, macOS, X64, c2pool-mac-intel] self-hosted (macpro-intel-204)

This activates the idle macpro-intel-204 self-hosted Intel runner that was stood up 2026-06-16, putting the macOS x86_64 lane on a native runner and resolving the GitHub-hosted macos-13 Intel-runner starvation (#42). The arm64 GitHub-hosted lane is untouched.

Tag-only packaging is parameterized by ${{ matrix.arch }} and derives the Homebrew prefix via brew --prefix, so it is correct on both Apple Silicon (/opt/homebrew) and Intel (/usr/local).

Fork-PR RCE gate — CONFIRMED in place

Required before exposing a self-hosted runner on a public repo. Verified via the API prior to opening this PR:

$ gh api repos/frstrtr/c2pool/actions/permissions/fork-pr-contributor-approval
{"approval_policy":"all_external_contributors"}

all_external_contributors is the strictest setting — "Require approval for all outside collaborators." No untrusted fork code can reach the self-hosted runner without a maintainer first approving the workflow run.

Proof

This PR's own CI exercises build.yml on pull_request. A green macOS x86_64 check running on the self-hosted runner (job picked up, busy then success) is the live proof the lane works. Runner-pickup evidence to follow in a PR comment.

Notes

  • Merge-gated: awaiting operator push-approval. Do not self-merge.
  • Scope is .github/workflows/build.yml only.

frstrtr added 2 commits June 16, 2026 07:09
Convert the single arm64-only macos job into an arch matrix:
  - arm64  -> GitHub-hosted macos-14 (unchanged)
  - x86_64 -> self-hosted [self-hosted, macOS, X64, c2pool-mac-intel]

Activates the macpro-intel-204 self-hosted runner so the macOS x86_64
lane is covered by native CI, resolving the GitHub-hosted macos-13
Intel-runner starvation (#42). Packaging (tag-only) is parameterized by
arch and now derives the Homebrew prefix via brew --prefix so it is
correct on both Apple Silicon (/opt/homebrew) and Intel (/usr/local).
The self-hosted Intel runner (macpro-intel-204) runs the Actions service
from launchd, whose PATH omits Homebrew at /usr/local/bin, so the dep
step failed with brew exit 127 (#100). Add a Set up Homebrew PATH step
that appends the real brew prefix to GITHUB_PATH so every later step
(cmake configure, brew --prefix packaging) resolves brew. GitHub-hosted
arm64 keeps /opt/homebrew; fail closed if brew is absent entirely.
@frstrtr
frstrtr merged commit 440190d into master Jun 17, 2026
18 checks passed
frstrtr added a commit that referenced this pull request Jun 22, 2026
Repoint the release matrix's macOS x86_64 cell from GitHub-hosted macos-13
to the self-hosted Intel runner (macpro-intel-204), mirroring build.yml.
Port the launchd Homebrew-PATH guard (#100) so brew resolves under the
launchd service PATH. arm64 stays on macos-14. Revert: restore
'runner: macos-13' and drop the Set up Homebrew PATH step.
frstrtr added a commit that referenced this pull request Jun 22, 2026
)

* ci(release): build macOS x86_64 packages on self-hosted c2pool-mac-intel

Repoint the release matrix's macOS x86_64 cell from GitHub-hosted macos-13
to the self-hosted Intel runner (macpro-intel-204), mirroring build.yml.
Port the launchd Homebrew-PATH guard (#100) so brew resolves under the
launchd service PATH. arm64 stays on macos-14. Revert: restore
'runner: macos-13' and drop the Set up Homebrew PATH step.

* ci(release): fix macOS universal lipo merge to resolve nested per-arch artifact dirs

download-artifact unpacks each per-arch package one level deep
(arm64/<pkgdir>/c2pool-<coin>); lipo referenced arm64/c2pool-<coin>
directly and failed with 'No such file or directory'. Resolve ARM_SRC
and X86_SRC to the staged package dirs so the merge finds both inputs.
frstrtr added a commit that referenced this pull request Jun 23, 2026
)

* ci(release): build macOS x86_64 packages on self-hosted c2pool-mac-intel

Repoint the release matrix's macOS x86_64 cell from GitHub-hosted macos-13
to the self-hosted Intel runner (macpro-intel-204), mirroring build.yml.
Port the launchd Homebrew-PATH guard (#100) so brew resolves under the
launchd service PATH. arm64 stays on macos-14. Revert: restore
'runner: macos-13' and drop the Set up Homebrew PATH step.

* ci(release): fix macOS universal lipo merge to resolve nested per-arch artifact dirs

download-artifact unpacks each per-arch package one level deep
(arm64/<pkgdir>/c2pool-<coin>); lipo referenced arm64/c2pool-<coin>
directly and failed with 'No such file or directory'. Resolve ARM_SRC
and X86_SRC to the staged package dirs so the merge finds both inputs.
frstrtr added a commit that referenced this pull request Jun 24, 2026
…rk fallback

Point the Windows job at the self-hosted runner (VM217,
labels self-hosted/Windows/X64/c2pool-build) for internal-branch
PRs and pushes; fork PRs fall back to GitHub-hosted windows-2022 so
untrusted code never executes on the self-hosted box. Completes the
self-hosted build fleet (Linux pending VM905 runner registration;
macOS x86_64 already self-hosted via #100). Conan cache retained.
frstrtr added a commit that referenced this pull request Jun 24, 2026
…rk fallback

Point the Windows job at the self-hosted runner (VM217,
labels self-hosted/Windows/X64/c2pool-build) for internal-branch
PRs and pushes; fork PRs fall back to GitHub-hosted windows-2022 so
untrusted code never executes on the self-hosted box. Completes the
self-hosted build fleet (Linux pending VM905 runner registration;
macOS x86_64 already self-hosted via #100). Conan cache retained.
frstrtr added a commit that referenced this pull request Jun 25, 2026
…rk fallback

Point the Windows job at the self-hosted runner (VM217,
labels self-hosted/Windows/X64/c2pool-build) for internal-branch
PRs and pushes; fork PRs fall back to GitHub-hosted windows-2022 so
untrusted code never executes on the self-hosted box. Completes the
self-hosted build fleet (Linux pending VM905 runner registration;
macOS x86_64 already self-hosted via #100). Conan cache retained.
frstrtr added a commit that referenced this pull request Jun 25, 2026
…rk fallback

Point the Windows job at the self-hosted runner (VM217,
labels self-hosted/Windows/X64/c2pool-build) for internal-branch
PRs and pushes; fork PRs fall back to GitHub-hosted windows-2022 so
untrusted code never executes on the self-hosted box. Completes the
self-hosted build fleet (Linux pending VM905 runner registration;
macOS x86_64 already self-hosted via #100). Conan cache retained.
frstrtr added a commit that referenced this pull request Jun 26, 2026
…rk fallback

Point the Windows job at the self-hosted runner (VM217,
labels self-hosted/Windows/X64/c2pool-build) for internal-branch
PRs and pushes; fork PRs fall back to GitHub-hosted windows-2022 so
untrusted code never executes on the self-hosted box. Completes the
self-hosted build fleet (Linux pending VM905 runner registration;
macOS x86_64 already self-hosted via #100). Conan cache retained.
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.

1 participant