@@ -178,12 +178,16 @@ LogGroup 'Calculate Job Run Conditions:' {
178178# Get-TestSuites
179179if ($settings.Test.Skip ) {
180180 Write-Host ' Skipping all tests.'
181- Set-GitHubOutput - Name SourceCodeTestSuites - Value ' []'
182- Set-GitHubOutput - Name PSModuleTestSuites - Value ' []'
183- Set-GitHubOutput - Name ModuleTestSuites - Value ' []'
184- $sourceCodeTestSuites = ' []'
185- $psModuleTestSuites = ' []'
186- $moduleTestSuites = ' []'
181+ $sourceCodeTestSuites = $null
182+ $psModuleTestSuites = $null
183+ $moduleTestSuites = $null
184+
185+ # Add TestSuites to settings
186+ $settings | Add-Member - MemberType NoteProperty - Name TestSuites - Value ([pscustomobject ]@ {
187+ SourceCode = $null
188+ PSModule = $null
189+ Module = $null
190+ })
187191} else {
188192
189193 # Define test configurations as an array of hashtables.
@@ -194,27 +198,29 @@ if ($settings.Test.Skip) {
194198 LogGroup ' Source Code Test Suites:' {
195199 $sourceCodeTestSuites = if ($settings.Test.SourceCode.Skip ) {
196200 Write-Host ' Skipping all source code tests.'
201+ $null
197202 } else {
198- if (-not $settings.Test.Linux.Skip -and -not $settings.Test.SourceCode.Linux.Skip ) { $linux }
199- if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.SourceCode.MacOS.Skip ) { $macOS }
200- if (-not $settings.Test.Windows.Skip -and -not $settings.Test.SourceCode.Windows.Skip ) { $windows }
203+ $result = @ ()
204+ if (-not $settings.Test.Linux.Skip -and -not $settings.Test.SourceCode.Linux.Skip ) { $result += $linux }
205+ if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.SourceCode.MacOS.Skip ) { $result += $macOS }
206+ if (-not $settings.Test.Windows.Skip -and -not $settings.Test.SourceCode.Windows.Skip ) { $result += $windows }
207+ if ($result.Count -gt 0 ) { $result } else { $null }
201208 }
202209 $sourceCodeTestSuites | Format-Table - AutoSize | Out-String
203- $sourceCodeTestSuites = ($null -ne $sourceCodeTestSuites ) ? ($sourceCodeTestSuites | ConvertTo-Json - AsArray) : ' []'
204- Set-GitHubOutput - Name SourceCodeTestSuites - Value $sourceCodeTestSuites
205210 }
206211
207212 LogGroup ' PSModule Test Suites:' {
208213 $psModuleTestSuites = if ($settings.Test.PSModule.Skip ) {
209214 Write-Host ' Skipping all PSModule tests.'
215+ $null
210216 } else {
211- if (-not $settings.Test.Linux.Skip -and -not $settings.Test.PSModule.Linux.Skip ) { $linux }
212- if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.PSModule.MacOS.Skip ) { $macOS }
213- if (-not $settings.Test.Windows.Skip -and -not $settings.Test.PSModule.Windows.Skip ) { $windows }
217+ $result = @ ()
218+ if (-not $settings.Test.Linux.Skip -and -not $settings.Test.PSModule.Linux.Skip ) { $result += $linux }
219+ if (-not $settings.Test.MacOS.Skip -and -not $settings.Test.PSModule.MacOS.Skip ) { $result += $macOS }
220+ if (-not $settings.Test.Windows.Skip -and -not $settings.Test.PSModule.Windows.Skip ) { $result += $windows }
221+ if ($result.Count -gt 0 ) { $result } else { $null }
214222 }
215223 $psModuleTestSuites | Format-Table - AutoSize | Out-String
216- $psModuleTestSuites = ($null -ne $psModuleTestSuites ) ? ($psModuleTestSuites | ConvertTo-Json - AsArray) : ' []'
217- Set-GitHubOutput - Name PSModuleTestSuites - Value $psModuleTestSuites
218224 }
219225
220226 LogGroup ' Module Local Test Suites:' {
@@ -294,9 +300,14 @@ if ($settings.Test.Skip) {
294300 }
295301 }
296302 $moduleTestSuites | Format-Table - AutoSize | Out-String
297- $moduleTestSuites = ($null -ne $moduleTestSuites ) ? ($moduleTestSuites | ConvertTo-Json - AsArray) : ' []'
298- Set-GitHubOutput - Name ModuleTestSuites - Value $moduleTestSuites
299303 }
304+
305+ # Add TestSuites to settings
306+ $settings | Add-Member - MemberType NoteProperty - Name TestSuites - Value ([pscustomobject ]@ {
307+ SourceCode = $sourceCodeTestSuites
308+ PSModule = $psModuleTestSuites
309+ Module = $moduleTestSuites
310+ })
300311}
301312
302313# Calculate job-specific conditions and add to settings
@@ -305,17 +316,17 @@ LogGroup 'Calculate Job Run Conditions:' {
305316 $settings | Add-Member - MemberType NoteProperty - Name Run - Value ([pscustomobject ]@ {
306317 LintRepository = $isOpenOrUpdatedPR -and (-not $settings.Linter.Skip )
307318 BuildModule = $isNotAbandonedPR -and (-not $settings.Build.Module.Skip )
308- TestSourceCode = $isNotAbandonedPR -and ($sourceCodeTestSuites -ne ' [] ' )
309- LintSourceCode = $isNotAbandonedPR -and ($sourceCodeTestSuites -ne ' [] ' )
310- TestModule = $isNotAbandonedPR -and ($psModuleTestSuites -ne ' [] ' )
311- BeforeAllModuleLocal = $isNotAbandonedPR -and ($moduleTestSuites -ne ' [] ' )
312- TestModuleLocal = $isNotAbandonedPR -and ($moduleTestSuites -ne ' [] ' )
319+ TestSourceCode = $isNotAbandonedPR -and ($null -ne $settings .TestSuites.SourceCode )
320+ LintSourceCode = $isNotAbandonedPR -and ($null -ne $settings .TestSuites.SourceCode )
321+ TestModule = $isNotAbandonedPR -and ($null -ne $settings .TestSuites.PSModule )
322+ BeforeAllModuleLocal = $isNotAbandonedPR -and ($null -ne $settings .TestSuites.Module )
323+ TestModuleLocal = $isNotAbandonedPR -and ($null -ne $settings .TestSuites.Module )
313324 AfterAllModuleLocal = $true # Always runs if Test-ModuleLocal was not skipped
314325 GetTestResults = $isNotAbandonedPR -and (-not $settings.Test.TestResults.Skip ) -and (
315- $sourceCodeTestSuites -ne ' [] ' -or $psModuleTestSuites -ne ' [] ' -or $moduleTestSuites -ne ' [] '
326+ ( $null -ne $settings .TestSuites.SourceCode ) -or ( $null -ne $settings .TestSuites.PSModule ) -or ( $null -ne $settings .TestSuites.Module )
316327 )
317328 GetCodeCoverage = $isNotAbandonedPR -and (-not $settings.Test.CodeCoverage.Skip ) -and (
318- $psModuleTestSuites -ne ' [] ' -or $moduleTestSuites -ne ' [] '
329+ ( $null -ne $settings .TestSuites.PSModule ) -or ( $null -ne $settings .TestSuites.Module )
319330 )
320331 PublishModule = $isPR -and (
321332 $isAbandonedPR -or
0 commit comments