@@ -375,13 +375,6 @@ if ($settings.Test.Skip) {
375375 $sourceCodeTestSuites = $null
376376 $psModuleTestSuites = $null
377377 $moduleTestSuites = $null
378-
379- # Add TestSuites to settings
380- $settings | Add-Member - MemberType NoteProperty - Name TestSuites - Value ([pscustomobject ]@ {
381- SourceCode = $null
382- PSModule = $null
383- Module = $null
384- })
385378} else {
386379
387380 # Define test configurations as an array of hashtables.
@@ -529,14 +522,13 @@ if ($settings.Test.Skip) {
529522 $moduleTestSuites | Format-Table - AutoSize | Out-String
530523 }
531524
532- # Add TestSuites to settings
533- $settings | Add-Member - MemberType NoteProperty - Name TestSuites - Value ([pscustomobject ]@ {
534- SourceCode = $sourceCodeTestSuites
535- PSModule = $psModuleTestSuites
536- Module = $moduleTestSuites
537- })
538525}
539526
527+ # Keep test suites with each test phase that owns them.
528+ $settings.Test.SourceCode | Add-Member - MemberType NoteProperty - Name Suites - Value $sourceCodeTestSuites - Force
529+ $settings.Test.PSModule | Add-Member - MemberType NoteProperty - Name Suites - Value $psModuleTestSuites - Force
530+ $settings.Test.Module | Add-Member - MemberType NoteProperty - Name Suites - Value $moduleTestSuites - Force
531+
540532# Calculate job-specific conditions and add to settings
541533LogGroup ' Calculate Job Run Conditions:' {
542534 # Calculate if prereleases should be cleaned up:
@@ -565,32 +557,77 @@ LogGroup 'Calculate Job Run Conditions:' {
565557 Write-Host " tests/BeforeAll.ps1 exists: $hasBeforeAllScript "
566558 Write-Host " tests/AfterAll.ps1 exists: $hasAfterAllScript "
567559
568- # Create Run object with all job-specific conditions
569- $run = [pscustomobject ]@ {
570- LintRepository = $isOpenOrUpdatedPR -and (-not $settings.Linter.Skip )
571- BuildModule = $shouldRunBuildTest -and (-not $settings.Build.Module.Skip )
572- TestSourceCode = $shouldRunBuildTest -and ($null -ne $settings.TestSuites.SourceCode )
573- LintSourceCode = $shouldRunBuildTest -and ($null -ne $settings.TestSuites.SourceCode )
574- TestModule = $shouldRunBuildTest -and ($null -ne $settings.TestSuites.PSModule )
575- BeforeAllModuleLocal = $shouldRunBuildTest -and ($null -ne $settings.TestSuites.Module ) -and $hasBeforeAllScript
576- TestModuleLocal = $shouldRunBuildTest -and ($null -ne $settings.TestSuites.Module )
577- AfterAllModuleLocal = $shouldRunBuildTest -and ($null -ne $settings.TestSuites.Module ) -and $hasAfterAllScript
578- GetTestResults = $shouldRunBuildTest -and (-not $settings.Test.TestResults.Skip ) -and (
579- ($null -ne $settings.TestSuites.SourceCode ) -or ($null -ne $settings.TestSuites.PSModule ) -or ($null -ne $settings.TestSuites.Module )
560+ $sourceCodeEnabled = $shouldRunBuildTest -and ($null -ne $settings.Test.SourceCode.Suites )
561+ $psModuleEnabled = $shouldRunBuildTest -and ($null -ne $settings.Test.PSModule.Suites )
562+ $moduleLocalEnabled = $shouldRunBuildTest -and ($null -ne $settings.Test.Module.Suites )
563+ $beforeAllEnabled = $moduleLocalEnabled -and $hasBeforeAllScript
564+ $afterAllEnabled = $moduleLocalEnabled -and $hasAfterAllScript
565+
566+ # Keep desired/computed execution state with each phase.
567+ $settings.Linter | Add-Member - MemberType NoteProperty - Name Repository - Value ([pscustomobject ]@ {
568+ Desired = -not $settings.Linter.Skip
569+ Enabled = $isOpenOrUpdatedPR -and (-not $settings.Linter.Skip )
570+ }) - Force
571+ $settings.Linter | Add-Member - MemberType NoteProperty - Name SourceCode - Value ([pscustomobject ]@ {
572+ Desired = -not $settings.Test.SourceCode.Skip
573+ Enabled = $sourceCodeEnabled
574+ }) - Force
575+
576+ $settings.Build.Module | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Build.Module.Skip ) - Force
577+ $settings.Build.Module | Add-Member - MemberType NoteProperty - Name Enabled - Value ($shouldRunBuildTest -and (-not $settings.Build.Module.Skip )) - Force
578+ $settings.Build.Docs | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Build.Docs.Skip ) - Force
579+ $settings.Build.Docs | Add-Member - MemberType NoteProperty - Name Enabled - Value ($shouldRunBuildTest -and (-not $settings.Build.Docs.Skip )) - Force
580+ $settings.Build.Site | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Build.Site.Skip ) - Force
581+ $settings.Build.Site | Add-Member - MemberType NoteProperty - Name Enabled - Value ($shouldRunBuildTest -and (-not $settings.Build.Site.Skip )) - Force
582+
583+ $settings.Test.SourceCode | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Test.SourceCode.Skip ) - Force
584+ $settings.Test.SourceCode | Add-Member - MemberType NoteProperty - Name Enabled - Value $sourceCodeEnabled - Force
585+ $settings.Test.PSModule | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Test.PSModule.Skip ) - Force
586+ $settings.Test.PSModule | Add-Member - MemberType NoteProperty - Name Enabled - Value $psModuleEnabled - Force
587+ $settings.Test.Module | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Test.Module.Skip ) - Force
588+ $settings.Test.Module | Add-Member - MemberType NoteProperty - Name BeforeAllEnabled - Value $beforeAllEnabled - Force
589+ $settings.Test.Module | Add-Member - MemberType NoteProperty - Name MainEnabled - Value $moduleLocalEnabled - Force
590+ $settings.Test.Module | Add-Member - MemberType NoteProperty - Name AfterAllEnabled - Value $afterAllEnabled - Force
591+
592+ $settings.Test.TestResults | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Test.TestResults.Skip ) - Force
593+ $settings.Test.TestResults | Add-Member - MemberType NoteProperty - Name Enabled - Value (
594+ $shouldRunBuildTest -and (-not $settings.Test.TestResults.Skip ) -and (
595+ ($null -ne $settings.Test.SourceCode.Suites ) -or ($null -ne $settings.Test.PSModule.Suites ) -or ($null -ne $settings.Test.Module.Suites )
580596 )
581- GetCodeCoverage = $shouldRunBuildTest -and (-not $settings.Test.CodeCoverage.Skip ) -and (
582- ($null -ne $settings.TestSuites.PSModule ) -or ($null -ne $settings.TestSuites.Module )
597+ ) - Force
598+ $settings.Test.CodeCoverage | Add-Member - MemberType NoteProperty - Name Desired - Value (-not $settings.Test.CodeCoverage.Skip ) - Force
599+ $settings.Test.CodeCoverage | Add-Member - MemberType NoteProperty - Name Enabled - Value (
600+ $shouldRunBuildTest -and (-not $settings.Test.CodeCoverage.Skip ) -and (
601+ ($null -ne $settings.Test.PSModule.Suites ) -or ($null -ne $settings.Test.Module.Suites )
583602 )
584- PublishModule = ($releaseType -ne ' None' ) -or $shouldAutoCleanup
585- BuildDocs = $shouldRunBuildTest -and (-not $settings.Build.Docs.Skip )
586- BuildSite = $shouldRunBuildTest -and (-not $settings.Build.Site.Skip )
587- PublishSite = $isMergedPR -and $isTargetDefaultBranch -and $hasImportantChanges
588- }
589- $settings | Add-Member - MemberType NoteProperty - Name Run - Value $run
603+ ) - Force
604+
605+ $settings.Publish.Module | Add-Member - MemberType NoteProperty - Name Desired - Value (($releaseType -ne ' None' ) -or $shouldAutoCleanup ) - Force
606+ $settings.Publish.Module | Add-Member - MemberType NoteProperty - Name Enabled - Value (($releaseType -ne ' None' ) -or $shouldAutoCleanup ) - Force
607+ $settings.Publish | Add-Member - MemberType NoteProperty - Name Site - Value ([pscustomobject ]@ {
608+ Desired = $isMergedPR -and $isTargetDefaultBranch -and $hasImportantChanges
609+ Enabled = $isMergedPR -and $isTargetDefaultBranch -and $hasImportantChanges
610+ }) - Force
611+
590612 $settings | Add-Member - MemberType NoteProperty - Name HasImportantChanges - Value $hasImportantChanges
591613
592- Write-Host ' Job Run Conditions:'
593- $run | Format-List | Out-String
614+ Write-Host ' Phase execution state:'
615+ [pscustomobject ]@ {
616+ LintRepository = $settings.Linter.Repository.Enabled
617+ BuildModule = $settings.Build.Module.Enabled
618+ TestSourceCode = $settings.Test.SourceCode.Enabled
619+ LintSourceCode = $settings.Linter.SourceCode.Enabled
620+ TestModule = $settings.Test.PSModule.Enabled
621+ BeforeAllModuleLocal = $settings.Test.Module.BeforeAllEnabled
622+ TestModuleLocal = $settings.Test.Module.MainEnabled
623+ AfterAllModuleLocal = $settings.Test.Module.AfterAllEnabled
624+ GetTestResults = $settings.Test.TestResults.Enabled
625+ GetCodeCoverage = $settings.Test.CodeCoverage.Enabled
626+ PublishModule = $settings.Publish.Module.Enabled
627+ BuildDocs = $settings.Build.Docs.Enabled
628+ BuildSite = $settings.Build.Site.Enabled
629+ PublishSite = $settings.Publish.Site.Enabled
630+ } | Format-List | Out-String
594631}
595632
596633LogGroup ' Final settings' {
0 commit comments