CNA-BUG-192: metal-macos-ci.yml's push path filter names three CMake files that no longer exist and omits the files that now register the Metal tests

CNA snapshot 009d40f5  ·  Known Issues › Current bugs  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit. Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The Metal workflow's push filter lists three removed CMake files, while edits to modules/renderers/metal/CMakeLists.txt or its examples/CMakeLists.txt, where the Metal_* CTests are registered, do not trigger it.

Identifier
CNA-BUG-192
Category
Bug
Subsystem
Build & CI
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
None
Affected contract
.github/workflows/metal-macos-ci.yml, on.push.paths

Expected behaviour

A path-filtered workflow should run when the files that build and register its tests change. For the native Metal lane those are the Metal family's own CMake files and sources plus the shared selection and registry files.

Actual behaviour at TARGET

metal-macos-ci.yml lists cmake/BackendLibraries.cmake, cmake/Examples.cmake and cmake/Tests/MetalTests.cmake; none exists at TARGET (they are the only dead paths in any of the 20 workflow files). The filter lists the Metal src/**, include/**, tests/** and two example sources, but not modules/renderers/metal/CMakeLists.txt, modules/renderers/metal/examples/CMakeLists.txt (which registers Metal_PortableHelpers, Metal_Smoke and Metal_Capabilities), cmake/RendererIdentities.cmake or cmake/RendererRegistry.cmake. A push that changes only those files runs no Metal job. Pull requests are not filtered and still run it.

Source locations

Evidence

Checked by reading at 009d40f5: every repository path named in a workflow file was tested for existence. Not executed. The three names are the pre-modularization locations of the Metal build and test registration.

Independently observed as a separate finding (merged): A push that changes only modules/renderers/metal/CMakeLists.txt or its examples/CMakeLists.txt (where Metal_Smoke, Metal_Capabilities and Metal_PortableHelpers are registered) does not start the Metal workflow; pull requests are unfiltered.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

None; nothing validates workflow path filters.

Regression test

Replace the dead entries with modules/renderers/metal/** and the current selection/registry files, and add a small check (the existence test used for this entry) that fails when a workflow names a path that does not exist.

Blast radius

Push-triggered Metal CI on next/develop/main; pull requests and the other workflows are unaffected.

Workaround

Dispatch the workflow manually after changing Metal CMake files.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Maintainer workflow
Workflows: CI triggers
Known issues
Bug index