Skip to content

build(workflows): remove orphaned matrix include entries in nightly install tests#13452

Closed
Planeshifter wants to merge 1 commit into
developfrom
philipp/ci-fix-workflow-matrix-runs-on-2026-07-13
Closed

build(workflows): remove orphaned matrix include entries in nightly install tests#13452
Planeshifter wants to merge 1 commit into
developfrom
philipp/ci-fix-workflow-matrix-runs-on-2026-07-13

Conversation

@Planeshifter

Copy link
Copy Markdown
Member

Description

What is the purpose of this pull request?

This pull request:

  • Fixes the nightly linux_test_install and macos_test_npm_install workflows, which have failed on every scheduled run for the past month on develop. Root cause: strategy.matrix.include in both YAML files still listed entries for NODE_VERSION values (14, 12, 10, 8, 6, 4, 0.12, 0.10) that no longer exist in the trimmed base matrix.NODE_VERSION: ['20', '18', '16'] list. GitHub Actions treats any include entry with no matching base combination as a new job using only the keys given in that entry, leaving matrix.OS undefined; runs-on: ${{ matrix.OS }} then evaluates to '' and the run fails before any job executes.
  • Removes the orphaned include entries from both files so every remaining entry matches an existing NODE_VERSION/OS combination.

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

Failing runs: https://github.com/stdlib-js/stdlib/actions/runs/29241867217 and https://github.com/stdlib-js/stdlib/actions/runs/29241447715.

Symptom: Error when evaluating 'runs-on' for job 'test_install'/'test_npm_install': Unexpected value ''.

Validation: YAML syntax checked with Python's yaml.safe_load; matrix expansion traced by hand for both files, confirming no orphan combinations remain after the fix. Reviewed in three passes: correctness (checked all matrix-using workflows for the same bug pattern; found none elsewhere), regression scope (NODE_VERSION 20/18/16 legs and the zulip notification job untouched, no downstream references to the removed legs), and style/conventions (checked against docs/style-guides/git/README.md).

Note: sibling workflows (linux_test.yml, macos_test.yml, etc.) handle the same trimmed-matrix situation by commenting out stale entries rather than deleting them. This PR deletes the orphaned entries outright since they were live, not commented, and were the actual cause of the failure.

Note: the exclude: block in linux_test_install.yml referencing NODE_VERSION 0.12/0.10 is now fully vestigial. Pre-existing, not touched by this PR — flagging for a maintainer as a possible follow-up cleanup.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

This PR was written primarily by Claude Code, investigating a GitHub Actions run failure and proposing a minimal fix to the affected workflow YAML files.


@stdlib-js/reviewers


Generated by Claude Code

… install tests

The jobs `test_install` (`linux_test_install`) and `test_npm_install`
(`macos_test_npm_install`) have failed on every scheduled run on
develop for the past month with:

  Error when evaluating 'runs-on' for job 'test_install'.
  Unexpected value ''

Root cause: both workflows trim `strategy.matrix.NODE_VERSION` to
`['20', '18', '16']`, but `strategy.matrix.include` still listed
entries for older, no-longer-present versions ('14', '12', '10',
'8', '6', '4', '0.12', '0.10'). Per GitHub Actions matrix semantics,
an `include` entry whose specified keys match no existing base
combination is added as an entirely new combination containing only
the keys given in that entry - leaving `OS` (and thus
`runs-on: ${{ matrix.OS }}`) undefined, which GitHub Actions rejects
at evaluation time before any job runs.

This commit removes the orphaned `include` entries so every
remaining entry matches an existing NODE_VERSION/OS combination,
restoring a defined `matrix.OS` for all generated jobs.

Ref: https://github.com/stdlib-js/stdlib/actions/runs/29241867217
Ref: https://github.com/stdlib-js/stdlib/actions/runs/29241447715

Copy link
Copy Markdown
Member Author

Duplicate — #13231 and #13232 already propose this identical fix (split by workflow file), open since 2026-07-02. Closing this in favor of those.


Generated by Claude Code

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.

2 participants