Summary
sdk/storage/ci.yml declares no paths filter on its trigger block or its pr block, so the cpp - storage - ci pipeline starts on every pull request to main. Every other service pipeline in the repository filters by path.
Motivation
A pull request that changes no storage file still starts the full storage build matrix across Windows, Linux, and macOS. Pull request 7339 changes only doc/DistributedTracing.md and files under sdk/eventhubs/, with no file under sdk/storage/ and no file under sdk/core/, and it still reports 41 cpp - storage - ci checks. The storage pipeline also does not run storage tests on a pull request, and its own comment records "Not running tests on CI but only on LiveTest mode". The cost is build time with no added signal. A count of the paths keys puts storage alone at zero:
sdk/storage/ci.yml:0
sdk/eventhubs/ci.yml:2
sdk/core/ci.yml:2
sdk/keyvault/ci.yml:2
sdk/identity/ci.yml:2
sdk/tables/ci.yml:2
Proposal
Add a paths block to the trigger block and to the pr block of sdk/storage/ci.yml, in the form the other service pipelines already use. The include list must hold sdk/storage and the shared paths that change a storage build, for example eng/, cmake-modules/, and CMakeLists.txt.
Make sure the present state is not deliberate before a change lands. An unfiltered storage pipeline can act as a wide canary that catches a core change which breaks a dependent package. A maintainer must confirm the intent, because the filter removes that coverage.
Summary
sdk/storage/ci.ymldeclares nopathsfilter on itstriggerblock or itsprblock, so thecpp - storage - cipipeline starts on every pull request tomain. Every other service pipeline in the repository filters by path.Motivation
A pull request that changes no storage file still starts the full storage build matrix across Windows, Linux, and macOS. Pull request 7339 changes only
doc/DistributedTracing.mdand files undersdk/eventhubs/, with no file undersdk/storage/and no file undersdk/core/, and it still reports 41cpp - storage - cichecks. The storage pipeline also does not run storage tests on a pull request, and its own comment records "Not running tests on CI but only on LiveTest mode". The cost is build time with no added signal. A count of thepathskeys puts storage alone at zero:Proposal
Add a
pathsblock to thetriggerblock and to theprblock ofsdk/storage/ci.yml, in the form the other service pipelines already use. The include list must holdsdk/storageand the shared paths that change a storage build, for exampleeng/,cmake-modules/, andCMakeLists.txt.Make sure the present state is not deliberate before a change lands. An unfiltered storage pipeline can act as a wide canary that catches a core change which breaks a dependent package. A maintainer must confirm the intent, because the filter removes that coverage.