Skip to content

CI: run macOS jobs on PRs; run Framework/Ref on devel pushes instead of nightly - #282

Closed
devin-ai-integration[bot] wants to merge 2 commits into
develfrom
devin/1792178773-macos-ci-on-prs
Closed

devin-ai-integration[bot] wants to merge 2 commits into
develfrom
devin/1792178773-macos-ci-on-prs

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Related Issue(s) nasa#6211
Has Unit Tests (y/n) n (CI-only change)
Documentation Included (y/n) n
Generative AI was used in this contribution (y/n) AI

Change Description

framework.yml and ref.yml:

Rationale

With macOS only nightly, macOS-only breakage lands unnoticed: nasa#6211 sat red in 58 of 59 nightlies for two months. Running macOS on PRs catches it before merge, which makes the nightly redundant; a devel push run still covers post-merge interactions.

Testing/Review Recommendations

actionlint passes on both workflows. UTs [macos-latest] on PRs will fail until the nasa#6211 fix (nasa#6216) merges, so merge that one first.

Future Work

Contributor Checklist

AI Usage (see policy)

Devin (AI) made the workflow edits and ran actionlint, at the direction of Thomas Boyer-Chammard.

IAMAI

@devin-ai-integration

Copy link
Copy Markdown
Author

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

Original prompt from thomas.boyer.chammard

see nasa#6211 - not having macos in CI on PRs is a problem, we should put it back. Can you do that? This should simplify the workflow definition quite a bit

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Devin Review found 2 potential issues.

Devin Review

Comment thread .github/workflows/ref.yml
include: ${{ github.event_name == 'schedule' && fromJSON('[{"runner":"ubuntu-22.04"},{"runner":"macos-latest"}]') || fromJSON('[{"runner":"ubuntu-22.04"}]') }}
include:
- runner: ubuntu-22.04
- runner: macos-latest

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

🟡 macOS failures suppress Linux integration tests

When build fails on macOS, integration-tests skips Linux despite a successful Linux build. needs: build requires the entire matrix to pass, so the PR loses Linux integration coverage.

Learn more

GitHub treats a matrix job as one dependency: needs: build at integration-tests succeeds only when both build legs succeed. Adding the macOS build to every PR means a failure there skips Linux integration tests even when its matching artifact exists. This widens a nightly-only coupling into the regular PR checks.

Example: The Linux Ref build passes and uploads ref-build-artifacts-ubuntu-22.04, while the macOS Ref build fails. Both integration-test jobs are skipped; the Linux integration tests do not exercise the successful Linux build.

Recommended fix: Split the build dependency by platform, or allow the integration matrix to start after both builds and gate each leg on its corresponding successful build and artifact. Keep failed builds visible as failures rather than masking their status.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Correct: needs: build waits for both build legs. That's the coupling Ref had before nasa#5653 and still has in the nightly. A failed macOS build still shows up as a red check on the PR, so nothing is hidden. Splitting build/integration per platform is possible as a follow-up, but it's out of scope for restoring the matrix.

Comment on lines +45 to +46
- runner: macos-latest
jobs: "2"

@devin-ai-integration devin-ai-integration Bot Oct 16, 2026 •

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

🟡 Manual runner override duplicates CI jobs

With a workflow_dispatch runner override, build and unit-tests run twice on the selected runner. runs-on overrides both matrix entries, so a single-runner dispatch consumes two copies of each check.

Learn more

Both workflows retain a workflow_dispatch runner input, used by runs-on and the equivalent Ref jobs. Previously, dispatch expanded only the Ubuntu matrix entry, and runs-on substituted the requested runner. Now dispatch expands both entries, but substitutes the same requested runner for both. Ref also runs two duplicate integration tests and uploads two separately named artifacts from the same runner.

Example: Manually dispatch Framework with runner=macos-latest. Both Build [ubuntu-22.04] and Build [macos-latest] run on macOS, and both unit-test entries do too, although the former is labeled Ubuntu.

Recommended fix: Preserve a single matrix entry when a manual runner override is supplied; expand both platforms on pull requests, release pushes and the schedule. Apply the same selection to all matrix jobs in both workflows.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Correct, but it only affects manual dispatches with a runner override. It's also how this matrix behaved before nasa#5653 and how the nightly behaves today. Leaving it as is: the point of this PR is to drop the conditional matrix expressions, not add a different one.

@devin-ai-integration devin-ai-integration Bot changed the title CI: run macOS jobs on pull requests again CI: run macOS jobs on PRs; run Framework/Ref on devel pushes instead of nightly Oct 16, 2026
@devin-ai-integration

Copy link
Copy Markdown
Author

Superseded by nasa#6217.

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