Skip to content

ci: migrate demo macOS validation to macos-15 runner - #79

Merged
codeforester merged 2 commits into
mainfrom
ci/78-20261017-move-demo-validation-from-macos-14-to-macos-15
Oct 17, 2026
Merged

codeforester merged 2 commits into
mainfrom
ci/78-20261017-move-demo-validation-from-macos-14-to-macos-15

Conversation

@codeforester

Copy link
Copy Markdown
Contributor

Closes #78.

Part of the coordinated train anchored by basefoundry/base#2604.

Changes:

  • Moves Homebrew Bash, standalone artifact, and framework-compatibility jobs to pinned macos-15.
  • Updates the required-check aggregate and CI documentation.
  • Preserves historical macos-14 evidence.

Local validation:

  • Full tests/validate.sh passed after preparing the pinned SPDX validator with the normal setup contract.
  • git diff --check passed.

@codeforester codeforester left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review: the change itself is correct, but this PR cannot go green as-is. Required consumer and artifact validation is structurally unable to pass. Reviewed all 4 files at 5f344c1.

Blocking: the required-check poller runs from main, not from this branch

required-checks.yml triggers on pull_request_target, so GitHub loads the workflow definition from main, where expected_names_json still lists Standalone artifact (macos-14). This PR's tests.yml now emits Standalone artifact (macos-15), so the poller sees Standalone artifact (macos-14)=missing/pending on every attempt and exits with "Timed out waiting for the pull-request test lanes for 5f344c1…" (run 38950549061). The required-checks.yml edit in this PR therefore cannot affect its own check. That check is a required status in the "Base default branch protection" ruleset, and the ruleset has no bypass actors.

Every lane it is waiting on is in fact green: Ubuntu validation, Minimum runtime (Bash 4.2.53), macOS Homebrew Bash validation, and Standalone artifact (ubuntu-24.04) and (macos-15).

Ways forward:

  1. The workflow has a workflow_dispatch entry (inputs pull_request_number, head_sha). Dispatching it from the PR branch should run this branch's copy of the file:
    gh workflow run required-checks.yml --ref ci/78-20261017-move-demo-validation-from-macos-14-to-macos-15 -f pull_request_number=79 -f head_sha=5f344c175e8856227bca882d5fe098833363faef
    If the ruleset accepts that run's check for the same name, this is the lightest fix. Please confirm it actually satisfies the required status before relying on it.
  2. If it does not, use a two-step change: first a main-side change so the poller tolerates either name for the macOS leg (or derives the expected lanes from tests.yml), then this rename, then drop the tolerance. The alternative is relaxing the ruleset for this one merge.

Unrelated failure: Sync issue and PR Project fields (Project Intake) failed on a GitHub GraphQL rate limit ("API rate limit already exceeded") while linking the PR to the issue, after its one retry. Re-run the failed job; it is not caused by this diff.

Otherwise fine: no macos-14 remains anywhere on the branch (workflows or docs), and the three workflow edits and the doc line match the issue scope. Supported Bash/Homebrew and Ubuntu behaviour is untouched. The acceptance criterion "required-check polling expects the new macos-15 check name" is met by the diff; it just cannot be demonstrated by this PR's own run.

Comment thread .github/workflows/required-checks.yml Outdated
fi

expected_names_json='["Ubuntu validation","Minimum runtime (Bash 4.2.53)","macOS Homebrew Bash validation","Standalone artifact (ubuntu-24.04)","Standalone artifact (macos-14)"]'
expected_names_json='["Ubuntu validation","Minimum runtime (Bash 4.2.53)","macOS Homebrew Bash validation","Standalone artifact (ubuntu-24.04)","Standalone artifact (macos-15)"]'

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This edit cannot take effect for this PR's own run: pull_request_target loads required-checks.yml from main, which still expects Standalone artifact (macos-14). See the review summary for ways forward.

codeforester added a commit that referenced this pull request Oct 17, 2026
## Summary

Follow-up for #78. The pull_request_target required-check poller runs
the workflow definition from main, so the runner rename in #79 cannot
update its own required check. This bridge accepts either the historical
Standalone artifact (macos-14) lane or the new Standalone artifact
(macos-15) lane while the migration lands.

## Validation

- Parsed the workflow YAML.
- Exercised the lane-summary jq against the existing PR test-run jobs.
- This bridge keeps the macOS lane mutually exclusive by selecting the
latest matching macOS artifact job.

This PR should merge before #79, then #79 should be synchronized and its
required checks rerun. The old-name tolerance can be removed after the
ecosystem migration is complete.
…emo-validation-from-macos-14-to-macos-15

# Conflicts:
#	.github/workflows/required-checks.yml
@codeforester
codeforester merged commit 390fa84 into main Oct 17, 2026
13 checks passed
@codeforester
codeforester deleted the ci/78-20261017-move-demo-validation-from-macos-14-to-macos-15 branch October 17, 2026 14:28
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.

ci: move demo validation from macos-14 to macos-15

1 participant