Repository navigation
CI: run macOS jobs on PRs; run Framework/Ref on devel pushes instead of nightly - #282
devin-ai-integration[bot] wants to merge 2 commits into
Conversation
|
I'll fix CI failures and address comments from users with write access that start with 'Devin'.
Original prompt from thomas.boyer.chammard
|
| 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 |
There was a problem hiding this comment.
🟡 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.
Was this helpful? React with 👍 or 👎 to provide feedback.
There was a problem hiding this comment.
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.
| - runner: macos-latest | ||
| jobs: "2" |
There was a problem hiding this comment.
🟡 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.
Was this helpful? React with 👍 or 👎 to provide feedback.
There was a problem hiding this comment.
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.
|
Superseded by nasa#6217. |
Change Description
framework.ymlandref.yml:fromJSON(...)matrices added in CI: scope UTs to framework vs deployment jobs; run macOS jobs only on the nightly schedule nasa/fprime#5653 with plain staticincludelists, so themacos-latestBuild / UTs / Integration Tests jobs run on every trigger again.schedule(CI: move devel-push jobs onto a nightly 2:00 PM Pacific schedule nasa/fprime#5647) withpushtodevel, so devel is checked after each merge.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
actionlintpasses 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.
AGENTS.md).IAMAI