build(workflows): remove orphaned matrix include entries in nightly install workflows#13287
Draft
Planeshifter wants to merge 1 commit into
Draft
build(workflows): remove orphaned matrix include entries in nightly install workflows#13287Planeshifter wants to merge 1 commit into
Planeshifter wants to merge 1 commit into
Conversation
…nstall workflows
The workflows `macos_test_npm_install` and `linux_test_install` failed
on every single scheduled run for at least the past 30 days, each time
completing in under 10 seconds with zero billable minutes for the
actual test-matrix job (`test_npm_install` / `test_install`) — only the
downstream `zulip` notification job ever ran.
Root cause: both workflows trimmed their active `NODE_VERSION` list
down to `['20', '18', '16']`, but left `strategy.matrix.include`
entries referencing older Node.js versions (14, 12, 10, 8, 6, 4, 0.12,
0.10) that no longer appear anywhere in the active matrix. Per GitHub
Actions' matrix-expansion rules, an `include` entry whose keys don't
match any existing combination spawns a new, standalone combination
containing only that entry's own keys — so each orphaned entry produced
a combination missing the `OS` key, making `runs-on: ${{ matrix.OS }}`
resolve to empty and failing the whole job's matrix expansion before
any runner was ever allocated. The sibling `windows_test_npm_install`
workflow does not exhibit this bug because its `include` entries match
its `NODE_VERSION` list exactly.
This commit removes the orphaned `include` entries (and the resulting
fully-vestigial `exclude` block in `linux_test_install.yml`, which only
referenced Node versions no longer present anywhere in the matrix), so
both workflows cleanly expand to their intended 3 combinations
(Node.js 20/18/16) and can actually run.
Ref: https://github.com/stdlib-js/stdlib/actions/runs/28736742230
Ref: https://github.com/stdlib-js/stdlib/actions/runs/28736806563
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request:
macos_test_npm_installandlinux_test_install, two nightly scheduled workflows that have failed on every single run for at least the past 30 days, each time completing in under 10 seconds with zero billable minutes for the actual test-matrix job — only the downstreamzulipnotification job ever ran.strategy.matrix.includeentries (Node.js versions 14, 12, 10, 8, 6, 4, 0.12, 0.10) left over after both workflows' activeNODE_VERSIONlist was trimmed down to['20', '18', '16'], plus the resulting fully-vestigialexcludeblock inlinux_test_install.yml.Related Issues
None.
Questions
No.
Other
Failing runs:
macos_test_npm_install)linux_test_install)Symptom: both workflows conclude
failureon every scheduled run, in under 10 seconds, with the jobs API showing zero billable minutes fortest_npm_install/test_install— only thezulipnotification job (which correctly reports the upstreamfailure) ever executes.Root cause: GitHub Actions' matrix-expansion rules create a new, standalone combination from an
includeentry whenever that entry's keys don't match any existing matrix combination — a new combination that only contains the keys given in that entry. Both workflows'includelists still had entries forNODE_VERSIONvalues (14, 12, 10, 8, 6, 4, 0.12, 0.10) that no longer appear in the activeNODE_VERSION: ['20', '18', '16']list. Each such entry therefore spawned a combination missing theOSkey, soruns-on: ${{ matrix.OS }}resolved to empty and the job's matrix expansion failed before any runner was allocated — for every one of the intended combinations, not just the orphaned ones. The siblingwindows_test_npm_installworkflow does not have this bug because itsincludeentries match itsNODE_VERSIONlist exactly.Fix: delete the orphaned
includeentries in both files (and the now fully-vestigialexcludeblock inlinux_test_install.yml, which referenced only Node versions no longer present anywhere in the matrix), and remove a leftover comment listing the old, wider Node.js version set. Both workflows now cleanly expand to their intended 3 combinations (Node.js 20/18/16), matching thewindows_test_npm_installconvention. No step definitions, other matrix dimensions, secrets, permissions, or thezulipjob are touched.Validation: confirmed both files remain valid YAML post-edit (parsed with PyYAML) and that every remaining
includeentry'sNODE_VERSIONis now a subset of the active list. Reviewed independently by three agents (correctness, regression scope, style/conventions) — all approved, no blocking findings. One non-blocking nit (a stale comment referencing the old Node version list) was folded in before commit.Reviewer notes:
package.json'senginesfield still nominally advertises>=0.10.0support — a pre-existing, repo-wide inconsistency with the real 16+ CI target, unrelated to this fix and out of scope here.Checklist
AI Assistance
Yes
No
Code generation (e.g., when writing an implementation or fixing a bug)
Test/benchmark generation
Documentation (including examples)
Research and understanding
Disclosure
This PR was authored by Claude Code as part of an automated CI-failure investigation routine: it identified that both nightly workflows had been failing on every run for a month, root-caused the matrix-expansion bug, applied the fix, and validated it against three independent review passes before opening this draft.
@stdlib-js/reviewers
Generated by Claude Code