@@ -44,15 +44,24 @@ jobs:
4444 - 'Installer.Tests/**'
4545 - 'install/**'
4646 - 'upgrades/**'
47+ # True when any non-documentation file changed. Documentation-only
48+ # changes (e.g. a CHANGELOG or README edit) skip the build/test/
49+ # publish steps below — there is nothing to compile. The job still
50+ # runs so the required 'build' check reports a result.
51+ code:
52+ - '**'
53+ - '!**/*.md'
4754
4855 - name : Setup .NET 10.0
56+ if : steps.filter.outputs.code != 'false'
4957 uses : actions/setup-dotnet@v5
5058 with :
5159 dotnet-version : 10.0.x
5260 cache : true
5361 cache-dependency-path : ' **/packages.lock.json'
5462
5563 - name : Restore dependencies
64+ if : steps.filter.outputs.code != 'false'
5665 run : |
5766 dotnet restore Dashboard/Dashboard.csproj --locked-mode
5867 dotnet restore Lite/PerformanceMonitorLite.csproj --locked-mode
@@ -61,12 +70,15 @@ jobs:
6170 dotnet restore Installer.Tests/Installer.Tests.csproj --locked-mode
6271
6372 - name : Build Lite.Tests
73+ if : steps.filter.outputs.code != 'false'
6474 run : dotnet build Lite.Tests/Lite.Tests.csproj -c Release --no-restore
6575
6676 - name : Build Installer.Tests
77+ if : steps.filter.outputs.code != 'false'
6778 run : dotnet build Installer.Tests/Installer.Tests.csproj -c Release --no-restore
6879
6980 - name : Run Lite fast tests
81+ if : steps.filter.outputs.code != 'false'
7082 run : dotnet test Lite.Tests/Lite.Tests.csproj -c Release --no-build --verbosity normal --filter "FullyQualifiedName!~AnomalyDetectorTests&FullyQualifiedName!~FactCollectorTests&FullyQualifiedName!~FactCollectorMiseryTests&FullyQualifiedName!~BaselineProviderTests&FullyQualifiedName!~InferenceEngineTests&FullyQualifiedName!~ScenarioTests&FullyQualifiedName!~AnalysisServiceTests"
7183
7284 - name : Run Lite analysis-heavy tests
@@ -78,27 +90,31 @@ jobs:
7890 run : dotnet test Installer.Tests/Installer.Tests.csproj -c Release --no-build --verbosity normal --filter "FullyQualifiedName!~VersionDetectionTests&FullyQualifiedName!~IdempotencyTests&FullyQualifiedName!~AdversarialTests"
7991
8092 - name : Get version
93+ if : steps.filter.outputs.code != 'false'
8194 id : version
8295 shell : pwsh
8396 run : |
8497 $version = ([xml](Get-Content Dashboard/Dashboard.csproj)).Project.PropertyGroup.Version | Where-Object { $_ }
8598 echo "VERSION=$version" >> $env:GITHUB_OUTPUT
8699
87100 - name : Publish Dashboard
101+ if : steps.filter.outputs.code != 'false'
88102 run : dotnet publish Dashboard/Dashboard.csproj -c Release -o publish/Dashboard
89103
90104 - name : Publish Dashboard (self-contained for Velopack)
91105 if : github.event_name == 'release'
92106 run : dotnet publish Dashboard/Dashboard.csproj -c Release -r win-x64 --self-contained -o publish/Dashboard-velopack
93107
94108 - name : Publish Lite
109+ if : steps.filter.outputs.code != 'false'
95110 run : dotnet publish Lite/PerformanceMonitorLite.csproj -c Release -o publish/Lite
96111
97112 - name : Publish Lite (self-contained for Velopack)
98113 if : github.event_name == 'release'
99114 run : dotnet publish Lite/PerformanceMonitorLite.csproj -c Release -r win-x64 --self-contained -o publish/Lite-velopack
100115
101116 - name : Publish CLI Installer
117+ if : steps.filter.outputs.code != 'false'
102118 run : dotnet publish Installer/PerformanceMonitorInstaller.csproj -c Release
103119
104120 - name : Package release artifacts
0 commit comments