Skip to content

ci: Skip macOS checks in forks - #11991

Merged
etseidl merged 1 commit into
apache:mainfrom
etseidl:skip-fork-macos
Oct 29, 2026
Merged

etseidl merged 1 commit into
apache:mainfrom
etseidl:skip-fork-macos

Conversation

@etseidl

@etseidl etseidl commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

CI checks in contributors' forks are timing out frequently on macOS.

What changes are included in this PR?

  • Restrict the macOS workspace test job to upstream runs, preserving its existing lint-only guard.
  • Update CI configuration validation and add regression cases for both guards.
  • Document the fork exclusions and retained upstream coverage.

Windows, MSRV, and Linux testing are unchanged.

Are these changes tested?

Added configuration regressions covering removal of the macOS guard or either clause. All configuration/routing and fork-status tests pass, along with
spelling and whitespace checks.

AI assistance was used for the workflow, validator, regression tests, and documentation changes.

Are there any significant user-facing changes?

No

@etseidl etseidl added the development-process Internal changes; PRs with this label are excluded from changelog label Oct 29, 2026
@etseidl

etseidl commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

@sdf-jkl I had pi whip this up for me. Can you look it over please 🙏

@Rich-T-kid Rich-T-kid added the documentation Improvements or additions to documentation label Oct 29, 2026

@Rich-T-kid Rich-T-kid left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue + code make sense but do we know the reason as to why the mac runners keep failing? why do they timeout on user forks but not in the merge queue CI?

@etseidl

etseidl commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

issue + code make sense but do we know the reason as to why the mac runners keep failing? why do they timeout on user forks but not in the merge queue CI?

I reran the job when it happened in my fork, so I can't find the log, but @HippoBaro quoted the reason given to him when it happened #11838 (comment)

Due to capacity constraints, jobs targeting macOS arm64 runners may experience longer queue times.

Lack of timeout in the merge queue may be due to using ASF vs free GitHub 🤷 It's all voodoo to me 😅

@sdf-jkl

sdf-jkl commented Oct 29, 2026

Copy link
Copy Markdown
Member

gh probably has less macos-latest runners 🤷

Though why they would fail more on fork runners vs ASF's runner is beyond me 😕

@sdf-jkl sdf-jkl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @etseidl

@HippoBaro

Copy link
Copy Markdown
Contributor

Here's an example of a CI run that failed. That's where I found the message that @etseidl quoted.

@etseidl

etseidl commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

macos test was skipped https://github.com/etseidl/arrow-rs/actions/runs/40895531684

Thanks all. @Rich-T-kid any objections to merging?

@Rich-T-kid Rich-T-kid left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks @etseidl

@etseidl
etseidl added this pull request to the merge queue Oct 29, 2026
Merged via the queue into apache:main with commit 0b34794 Oct 29, 2026
21 checks passed
@etseidl
etseidl deleted the skip-fork-macos branch October 30, 2026 00:03
@Jefffrey Jefffrey removed the documentation Improvements or additions to documentation label Nov 1, 2026
@Jefffrey

Jefffrey commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

sorry i didnt get around to reviewing this, thanks for this

one thing i had on my mind in the past was to also move the windows runner to be merge queue only 🤔

i doubt we often have windows impacting changes, so we can cut down some more compute (even if its on contributors forks) by just moving it to merge queue

philippemnoel pushed a commit to paradedb/datafusion that referenced this pull request Nov 3, 2026
## Which issue does this PR close?

Related to apache#25148.

## Rationale for this change

Fork CI can fail waiting for a macOS runner before any tests start,
blocking the `Rust (fork)` check.

## What changes are included in this PR?

Skip macOS tests in fork repositories, register the condition with the
existing workflow validator, and document the exclusion in the
contributor guide. Upstream coverage is unchanged, including the
required merge-queue check, following apache/arrow-rs#11991.

Windows remains unchanged; its job is already disabled.

## What is the testing strategy for this PR?

Existing workflow-validator tests, all-features Clippy, and all checks
in `./dev/rust_lint.sh` pass. No new tests: the existing validator
checks exact job conditions against the policy table.

## Are there any user-facing changes?

Contributors no longer need a macOS runner for fork CI. No runtime or
API changes.
adriangb pushed a commit to pydantic/arrow-rs that referenced this pull request Nov 3, 2026
# Which issue does this PR close?

- Part of apache#11469

# Rationale for this change

apache#11991 stopped running macOS tests in forks. @Jefffrey
[suggested](apache#11991 (comment))
moving the Windows job to the merge queue as well, because few changes
affect Windows and every fork push currently spends about 9 minutes on
it.

# What changes are included in this PR?

The Windows job now uses the same guard as the macOS job, so it no
longer runs on fork pushes, fork manual runs, or PRs inside a fork. The
CI validator and contributor docs are updated to match.

This is not strictly merge queue only. Windows still runs on
same-repository PRs, release-branch PRs, and upstream manual runs. The
merge queue only covers the default branch, so a `merge_group` guard
would leave release-branch PRs with no Windows testing. Contributors
working from forks do get merge queue only behavior, since upstream runs
of fork PRs already skip Windows. Of the last 200 PRs merged to `main`,
the only same-repository ones were 20 from dependabot.

Two tradeoffs:

- Upstream runner use does not change. The savings are all on
contributors' forks.
- Contributors first see a Windows failure when their PR is in the
queue, and cannot run Windows manually from their fork.

# Are these changes tested?

The CI validator now pins the Windows guard, and a new regression case
checks that restoring the old guard on the Windows job fails validation.
The guard itself only runs on GitHub, so this PR's fork run should skip
Windows and its queue run should execute it.

AI assistance was used for the workflow, validator, regression test, and
documentation changes.

# Are there any significant user-facing changes?

No

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

development-process Internal changes; PRs with this label are excluded from changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Discuss] Mac testing on fork branches keeps failing

5 participants