From 50f004357adbcd393540b7ff15276a6c7535092e Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 10 Dec 2025 17:58:07 -0600 Subject: [PATCH 1/7] Test-DscConfiguration and pipeline cleanup --- .../DSCResources/Adobe.integration.tests.ps1 | 1 + .../DSCResources/Chrome.integration.tests.ps1 | 1 + .../DotNetFramework.integration.tests.ps1 | 1 + .../DSCResources/Edge.integration.tests.ps1 | 1 + .../Firefox.integration.tests.ps1 | 5 +- .../IisServer.integration.tests.ps1 | 5 +- .../IisSite.integration.tests.ps1 | 1 + .../InternetExplorer.integration.tests.ps1 | 1 + .../DSCResources/McAfee.integration.tests.ps1 | 1 + .../DSCResources/Office.integration.tests.ps1 | 1 + .../OracleJRE.integration.tests.ps1 | 1 + .../SqlServer.integration.tests.ps1 | 1 + .../Vsphere.integration.tests.ps1 | 1 + .../WindowsClient.integration.tests.ps1 | 1 + .../WindowsDefender.integration.tests.ps1 | 1 + .../WindowsDnsServer.integration.tests.ps1 | 1 + .../WindowsFirewall.integration.tests.ps1 | 1 + .../WindowsServer.integration.tests.ps1 | 1 + azure-pipelines.yml | 185 +++++++++--------- 19 files changed, 119 insertions(+), 92 deletions(-) diff --git a/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 b/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 index 367dadcb1..85cc50347 100644 --- a/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 b/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 index 11f453ef1..bfa69fd74 100644 --- a/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $script:DSCCompositeResourceNameUpdate = "Google-{0}" -f ($MyInvocation.MyCommand.Name -split '\.')[0] $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceNameUpdate diff --git a/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 b/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 index 243e1018c..13c0b63a4 100644 --- a/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 @@ -3,6 +3,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName diff --git a/Tests/Integration/DSCResources/Edge.integration.tests.ps1 b/Tests/Integration/DSCResources/Edge.integration.tests.ps1 index ed91f9fcb..8be96cafb 100644 --- a/Tests/Integration/DSCResources/Edge.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Edge.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $script:DSCCompositeResourceNameUpdate = "MS-{0}" -f ($MyInvocation.MyCommand.Name -split '\.')[0] $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceNameUpdate diff --git a/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 b/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 index 7d0055f41..b787b3a29 100644 --- a/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} @@ -21,11 +22,11 @@ foreach ($stig in $stigList) { $ruleType = "RegistryRule" } - else + else { $ruleType = "FileContentRule" } - + $skipRule = Get-Random -InputObject $powerstigXml.$ruleType.Rule.id $skipRuleType = $null $expectedSkipRuleTypeCount = 0 + $blankSkipRuleId.Count diff --git a/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 b/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 index a89452132..64ad1b5aa 100644 --- a/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} @@ -13,7 +14,7 @@ $resourceParameters = $resourceInformation.Properties.Name $additionalTestParameterList = @{ LogPath = $env:temp } -<# +<# foreach ($stig in $stigList) { $orgSettingsPath = $stig.Path.Replace('.xml', '.org.default.xml') @@ -50,4 +51,4 @@ foreach ($stig in $stigList) . "$PSScriptRoot\Common.integration.ps1" } -#> \ No newline at end of file +#> diff --git a/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 b/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 index 1acb09e5d..2bcdcd432 100644 --- a/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 b/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 index 367dadcb1..85cc50347 100644 --- a/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 b/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 index 8370247f1..8c8efb227 100644 --- a/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/Office.integration.tests.ps1 b/Tests/Integration/DSCResources/Office.integration.tests.ps1 index 367dadcb1..85cc50347 100644 --- a/Tests/Integration/DSCResources/Office.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Office.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 b/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 index 37df580a5..151ef15ee 100644 --- a/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 b/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 index 7f951c376..444eb6e39 100644 --- a/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 b/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 index 0077f83b5..751c4c231 100644 --- a/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 index 70ec8807d..4e21e97b0 100644 --- a/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 index 367dadcb1..85cc50347 100644 --- a/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 index b98b29fab..82b55ee51 100644 --- a/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 index 367dadcb1..85cc50347 100644 --- a/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 index 983ffbda9..0791b4b14 100644 --- a/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 @@ -5,6 +5,7 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile +Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ab749a918..9b67befcf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -15,147 +15,153 @@ stages: - stage: Build jobs: - job: Package_Module - displayName: 'Package Module' + displayName: Package Module pool: - vmImage: 'windows-2022' + vmImage: windows-2022 steps: - task: GitVersion@5 name: gitVersion - displayName: 'Evaluate Next Version' + displayName: Evaluate Next Version inputs: - runtime: 'full' - configFilePath: 'GitVersion.yml' + runtime: full + configFilePath: GitVersion.yml - task: PowerShell@2 name: package - displayName: 'Build & Package Module' + displayName: Build & Package Module inputs: - filePath: './build.ps1' - arguments: '-ResolveDependency -tasks pack' + filePath: ./build.ps1 + arguments: >- + -ResolveDependency + -Tasks pack pwsh: true env: ModuleVersion: $(gitVersion.NuGetVersionV2) - task: PublishBuildArtifacts@1 - displayName: 'Publish Build Artifact' + displayName: Publish Build Artifact inputs: - pathToPublish: 'output/' - artifactName: 'output' - publishLocation: 'Container' + pathToPublish: output/ + artifactName: output + publishLocation: Container - stage: Test dependsOn: Build jobs: - job: Test_HQRM - displayName: 'High Quality Resource Module' + displayName: High Quality Resource Module pool: - vmImage: 'windows-2022' + vmImage: windows-2022 timeoutInMinutes: 0 steps: - task: DownloadBuildArtifacts@0 - displayName: 'Download Build Artifact' + displayName: Download Build Artifact inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'output' - downloadPath: '$(Build.SourcesDirectory)' + buildType: current + downloadType: single + artifactName: output + downloadPath: $(Build.SourcesDirectory) + - task: PowerShell@2 name: test - displayName: 'Run HQRM Test' + displayName: Run HQRM Test inputs: - filePath: './build.ps1' - arguments: '-Tasks hqrmtest' + filePath: ./build.ps1 + arguments: >- + -Tasks hqrmtest pwsh: false + - task: PublishTestResults@2 - displayName: 'Publish Test Results' + displayName: Publish Test Results condition: succeededOrFailed() inputs: - testResultsFormat: 'NUnit' - testResultsFiles: 'output/testResults/NUnit*.xml' - testRunTitle: 'HQRM' + testResultsFormat: NUnit + testResultsFiles: output/testResults/NUnit*.xml + testRunTitle: HQRM - job: Test_Unit - displayName: 'Unit' + displayName: Unit pool: - vmImage: 'windows-2022' + vmImage: windows-2022 timeoutInMinutes: 0 steps: - task: DownloadBuildArtifacts@0 - displayName: 'Download Build Artifact' + displayName: Download Build Artifact inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'output' - downloadPath: '$(Build.SourcesDirectory)' + buildType: current + downloadType: single + artifactName: output + downloadPath: $(Build.SourcesDirectory) - task: PowerShell@2 name: test - displayName: 'Run Unit Test' + displayName: Run Unit Test inputs: - filePath: './build.ps1' - arguments: "-Tasks test -PesterScript 'tests/Unit'" + filePath: ./build.ps1 + arguments: >- + -Tasks test + -PesterScript tests/Unit pwsh: false - task: PublishTestResults@2 - displayName: 'Publish Test Results' + displayName: Publish Test Results condition: succeededOrFailed() inputs: - testResultsFormat: 'NUnit' - testResultsFiles: 'output/testResults/NUnit*.xml' - testRunTitle: 'Unit (Windows Server Core)' + testResultsFormat: NUnit + testResultsFiles: output/testResults/NUnit*.xml + testRunTitle: Unit (Windows Server Core) - task: PublishBuildArtifacts@1 - displayName: 'Publish Test Artifact' + displayName: Publish Test Artifact condition: succeededOrFailed() inputs: - pathToPublish: 'output/testResults/' - artifactName: 'testResults' - publishLocation: 'Container' + pathToPublish: output/testResults/ + artifactName: testResults + publishLocation: Container - job: Test_Integration - displayName: 'Integration' + displayName: Integration pool: - vmImage: 'windows-2022' + vmImage: windows-2022 timeoutInMinutes: 0 steps: - task: DownloadBuildArtifacts@0 - displayName: 'Download Build Artifact' + displayName: Download Build Artifact inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'output' - downloadPath: '$(Build.SourcesDirectory)' + buildType: current + downloadType: single + artifactName: output + downloadPath: $(Build.SourcesDirectory) - - task: PowerShell@2 - name: configureWinRM - displayName: 'Configure WinRM' - inputs: - targetType: 'inline' - script: 'winrm quickconfig -quiet' - pwsh: false + - powershell: | + winrm quickconfig -quiet + displayName: Configure WinRM - task: PowerShell@2 name: test - displayName: 'Run Integration Test' + displayName: Run Integration Test inputs: - filePath: './build.ps1' - arguments: "-Tasks test -PesterScript 'tests/Integration' -CodeCoverageThreshold 0" + filePath: ./build.ps1 + arguments: >- + -Tasks test + -PesterScript tests/Integration + -CodeCoverageThreshold 0 pwsh: false - task: PublishTestResults@2 - displayName: 'Publish Test Results' + displayName: Publish Test Results condition: succeededOrFailed() inputs: - testResultsFormat: 'NUnit' - testResultsFiles: 'output/testResults/NUnit*.xml' - testRunTitle: 'Integration (Windows Server Core)' + testResultsFormat: NUnit + testResultsFiles: output/testResults/NUnit*.xml + testRunTitle: Integration (Windows Server Core) - job: Code_Coverage - displayName: 'Publish Code Coverage' + displayName: Publish Code Coverage dependsOn: Test_Unit condition: succeededOrFailed() pool: - vmImage: 'ubuntu-latest' + vmImage: ubuntu-latest timeoutInMinutes: 0 steps: - pwsh: | @@ -163,22 +169,23 @@ stages: echo "##vso[task.setvariable variable=RepositoryOwner;isOutput=true]$repositoryOwner" echo "##vso[task.setvariable variable=RepositoryName;isOutput=true]$repositoryName" name: dscBuildVariable - displayName: 'Set Environment Variables' + displayName: Set Environment Variables + - task: DownloadBuildArtifacts@0 - displayName: 'Download Build Artifact' + displayName: Download Build Artifact inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'output' - downloadPath: '$(Build.SourcesDirectory)' + buildType: current + downloadType: single + artifactName: output + downloadPath: $(Build.SourcesDirectory) - task: DownloadBuildArtifacts@0 - displayName: 'Download Test Artifact' + displayName: Download Test Artifact inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'testResults' - downloadPath: '$(Build.SourcesDirectory)/output' + buildType: current + downloadType: single + artifactName: testResults + downloadPath: $(Build.SourcesDirectory)/output - stage: Deploy dependsOn: Test @@ -192,22 +199,24 @@ stages: ) jobs: - job: Deploy_Module - displayName: 'Deploy Module' + displayName: Deploy Module pool: - vmImage: 'windows-2022' + vmImage: windows-2022 steps: - task: DownloadBuildArtifacts@0 - displayName: 'Download Build Artifact' + displayName: Download Build Artifact inputs: - buildType: 'current' - downloadType: 'single' - artifactName: 'output' - downloadPath: '$(Build.SourcesDirectory)' + buildType: current + downloadType: single + artifactName: output + downloadPath: $(Build.SourcesDirectory) + - task: PowerShell@2 name: publishRelease - displayName: 'Publish Release' + displayName: Publish Release inputs: - filePath: './build.ps1' - arguments: '-tasks publish' + filePath: ./build.ps1 + arguments: >- + -Tasks publish env: GalleryApiToken: $(GalleryApiToken) From a861c028c4ea5db0e22f4e9245a0ee775efe2726 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 10 Dec 2025 18:46:42 -0600 Subject: [PATCH 2/7] common test --- Tests/Integration/DSCResources/Adobe.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/Chrome.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/Common.integration.ps1 | 4 ++++ .../DSCResources/DotNetFramework.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/Edge.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/Firefox.integration.tests.ps1 | 1 - .../Integration/DSCResources/IisServer.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/IisSite.integration.tests.ps1 | 1 - .../DSCResources/InternetExplorer.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/McAfee.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/Office.integration.tests.ps1 | 1 - .../Integration/DSCResources/OracleJRE.integration.tests.ps1 | 1 - .../Integration/DSCResources/SqlServer.integration.tests.ps1 | 1 - Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 | 1 - .../DSCResources/WindowsClient.integration.tests.ps1 | 1 - .../DSCResources/WindowsDefender.integration.tests.ps1 | 1 - .../DSCResources/WindowsDnsServer.integration.tests.ps1 | 1 - .../DSCResources/WindowsFirewall.integration.tests.ps1 | 1 - .../DSCResources/WindowsServer.integration.tests.ps1 | 1 - 19 files changed, 4 insertions(+), 18 deletions(-) diff --git a/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 b/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 index 85cc50347..367dadcb1 100644 --- a/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Adobe.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 b/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 index bfa69fd74..11f453ef1 100644 --- a/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Chrome.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $script:DSCCompositeResourceNameUpdate = "Google-{0}" -f ($MyInvocation.MyCommand.Name -split '\.')[0] $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceNameUpdate diff --git a/Tests/Integration/DSCResources/Common.integration.ps1 b/Tests/Integration/DSCResources/Common.integration.ps1 index 4191a5cc3..27298fa6b 100644 --- a/Tests/Integration/DSCResources/Common.integration.ps1 +++ b/Tests/Integration/DSCResources/Common.integration.ps1 @@ -30,6 +30,10 @@ Describe ($title + " $($stig.StigVersion) mof output") { { & $technologyConfig @testParameterList } | Should -Not -Throw } + It 'Should compile a useable MOF' { + { Test-DscConfiguration -Path "$TestDrive\localhost.mof" } | Should -Not -Throw + } + $ruleNames = (Get-Member -InputObject $powerstigXml | Where-Object -FilterScript { $_.Name -match '.*Rule' -and $_.Name -ne 'DocumentRule' -and $_.Name -ne 'ManualRule' }).Name diff --git a/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 b/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 index 13c0b63a4..243e1018c 100644 --- a/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/DotNetFramework.integration.tests.ps1 @@ -3,7 +3,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName diff --git a/Tests/Integration/DSCResources/Edge.integration.tests.ps1 b/Tests/Integration/DSCResources/Edge.integration.tests.ps1 index 8be96cafb..ed91f9fcb 100644 --- a/Tests/Integration/DSCResources/Edge.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Edge.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $script:DSCCompositeResourceNameUpdate = "MS-{0}" -f ($MyInvocation.MyCommand.Name -split '\.')[0] $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceNameUpdate diff --git a/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 b/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 index b787b3a29..7d77d22bd 100644 --- a/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Firefox.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 b/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 index 64ad1b5aa..7d4c38fc6 100644 --- a/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/IisServer.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 b/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 index 2bcdcd432..1acb09e5d 100644 --- a/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/IisSite.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 b/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 index 85cc50347..367dadcb1 100644 --- a/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/InternetExplorer.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 b/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 index 8c8efb227..8370247f1 100644 --- a/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/McAfee.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/Office.integration.tests.ps1 b/Tests/Integration/DSCResources/Office.integration.tests.ps1 index 85cc50347..367dadcb1 100644 --- a/Tests/Integration/DSCResources/Office.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Office.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 b/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 index 151ef15ee..37df580a5 100644 --- a/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/OracleJRE.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 b/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 index 444eb6e39..7f951c376 100644 --- a/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/SqlServer.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 b/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 index 751c4c231..0077f83b5 100644 --- a/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/Vsphere.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 index 4e21e97b0..70ec8807d 100644 --- a/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsClient.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 index 85cc50347..367dadcb1 100644 --- a/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsDefender.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 index 82b55ee51..b98b29fab 100644 --- a/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsDnsServer.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 index 85cc50347..367dadcb1 100644 --- a/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsFirewall.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} diff --git a/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 b/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 index 0791b4b14..983ffbda9 100644 --- a/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 +++ b/Tests/Integration/DSCResources/WindowsServer.integration.tests.ps1 @@ -5,7 +5,6 @@ $script:DSCCompositeResourceName = ($MyInvocation.MyCommand.Name -split '\.')[0] $configFile = Join-Path -Path $PSScriptRoot -ChildPath "$($script:DSCCompositeResourceName).config.ps1" . $configFile -Test-DscConfiguration -Path "$($script:DSCCompositeResourceName)_config" $stigList = Get-StigVersionTable -CompositeResourceName $script:DSCCompositeResourceName $resourceInformation = $global:getDscResource | Where-Object -FilterScript {$PSItem.Name -eq $script:DSCCompositeResourceName} From cf82b4f3cd22da46212537d2a646520e39d126f6 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 10 Dec 2025 19:03:41 -0600 Subject: [PATCH 3/7] technologyConfig --- Tests/Integration/DSCResources/Common.integration.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/DSCResources/Common.integration.ps1 b/Tests/Integration/DSCResources/Common.integration.ps1 index 27298fa6b..f4db2cd44 100644 --- a/Tests/Integration/DSCResources/Common.integration.ps1 +++ b/Tests/Integration/DSCResources/Common.integration.ps1 @@ -31,7 +31,7 @@ Describe ($title + " $($stig.StigVersion) mof output") { } It 'Should compile a useable MOF' { - { Test-DscConfiguration -Path "$TestDrive\localhost.mof" } | Should -Not -Throw + { Test-DscConfiguration -Path "$TestDrive\$technologyConfig" } | Should -Not -Throw } $ruleNames = (Get-Member -InputObject $powerstigXml | From 00919b2336b56529190c2855a1db9a73ca36a097 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 10 Dec 2025 19:48:48 -0600 Subject: [PATCH 4/7] OutputPath --- Tests/Integration/DSCResources/Common.integration.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Integration/DSCResources/Common.integration.ps1 b/Tests/Integration/DSCResources/Common.integration.ps1 index f4db2cd44..9c1a969f8 100644 --- a/Tests/Integration/DSCResources/Common.integration.ps1 +++ b/Tests/Integration/DSCResources/Common.integration.ps1 @@ -31,7 +31,7 @@ Describe ($title + " $($stig.StigVersion) mof output") { } It 'Should compile a useable MOF' { - { Test-DscConfiguration -Path "$TestDrive\$technologyConfig" } | Should -Not -Throw + { Test-DscConfiguration -Path $testParameterList.OutputPath } | Should -Not -Throw } $ruleNames = (Get-Member -InputObject $powerstigXml | From cc155e0fc96ec25ed70f1763526a93b12e666328 Mon Sep 17 00:00:00 2001 From: Brian West Date: Thu, 11 Dec 2025 10:51:50 -0600 Subject: [PATCH 5/7] import dsc modules and max envelope size --- Tests/Integration/DSCResources/Adobe.config.ps1 | 1 + Tests/Integration/DSCResources/Chrome.config.ps1 | 1 + Tests/Integration/DSCResources/Edge.config.ps1 | 1 + Tests/Integration/DSCResources/Firefox.config.ps1 | 1 + Tests/Integration/DSCResources/IisSite.config.ps1 | 1 + Tests/Integration/DSCResources/InternetExplorer.config.ps1 | 1 + Tests/Integration/DSCResources/McAfee.config.ps1 | 1 + Tests/Integration/DSCResources/Office.config.ps1 | 1 + Tests/Integration/DSCResources/OracleJRE.config.ps1 | 1 + Tests/Integration/DSCResources/SqlServer.config.ps1 | 1 + Tests/Integration/DSCResources/Vsphere.config.ps1 | 1 + Tests/Integration/DSCResources/WindowsClient.config.ps1 | 1 + Tests/Integration/DSCResources/WindowsDefender.config.ps1 | 1 + Tests/Integration/DSCResources/WindowsDnsServer.config.ps1 | 1 + Tests/Integration/DSCResources/WindowsFirewall.config.ps1 | 1 + Tests/Integration/DSCResources/WindowsServer.config.ps1 | 1 + azure-pipelines.yml | 1 + 17 files changed, 17 insertions(+) diff --git a/Tests/Integration/DSCResources/Adobe.config.ps1 b/Tests/Integration/DSCResources/Adobe.config.ps1 index 9148e01f2..75979f422 100644 --- a/Tests/Integration/DSCResources/Adobe.config.ps1 +++ b/Tests/Integration/DSCResources/Adobe.config.ps1 @@ -42,6 +42,7 @@ configuration Adobe_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName GPRegistryPolicyDsc Node localhost { diff --git a/Tests/Integration/DSCResources/Chrome.config.ps1 b/Tests/Integration/DSCResources/Chrome.config.ps1 index d4303b9f7..4d9944533 100644 --- a/Tests/Integration/DSCResources/Chrome.config.ps1 +++ b/Tests/Integration/DSCResources/Chrome.config.ps1 @@ -42,6 +42,7 @@ configuration Chrome_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName GPRegistryPolicyDsc Node localhost { diff --git a/Tests/Integration/DSCResources/Edge.config.ps1 b/Tests/Integration/DSCResources/Edge.config.ps1 index 2a5de5dd6..8ff5cbc7e 100644 --- a/Tests/Integration/DSCResources/Edge.config.ps1 +++ b/Tests/Integration/DSCResources/Edge.config.ps1 @@ -42,6 +42,7 @@ configuration Edge_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName GPRegistryPolicyDsc Node localhost { diff --git a/Tests/Integration/DSCResources/Firefox.config.ps1 b/Tests/Integration/DSCResources/Firefox.config.ps1 index 8f64be864..dee51c127 100644 --- a/Tests/Integration/DSCResources/Firefox.config.ps1 +++ b/Tests/Integration/DSCResources/Firefox.config.ps1 @@ -42,6 +42,7 @@ configuration Firefox_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName FileContentDsc Node localhost { diff --git a/Tests/Integration/DSCResources/IisSite.config.ps1 b/Tests/Integration/DSCResources/IisSite.config.ps1 index ea88a61ec..b5711bbf9 100644 --- a/Tests/Integration/DSCResources/IisSite.config.ps1 +++ b/Tests/Integration/DSCResources/IisSite.config.ps1 @@ -52,6 +52,7 @@ configuration IisSite_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName PSDscResources Node localhost { diff --git a/Tests/Integration/DSCResources/InternetExplorer.config.ps1 b/Tests/Integration/DSCResources/InternetExplorer.config.ps1 index fa79dea81..2d35c8f64 100644 --- a/Tests/Integration/DSCResources/InternetExplorer.config.ps1 +++ b/Tests/Integration/DSCResources/InternetExplorer.config.ps1 @@ -42,6 +42,7 @@ configuration InternetExplorer_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName GPRegistryPolicyDsc Node localhost { diff --git a/Tests/Integration/DSCResources/McAfee.config.ps1 b/Tests/Integration/DSCResources/McAfee.config.ps1 index c9d376aaf..98a5c2415 100644 --- a/Tests/Integration/DSCResources/McAfee.config.ps1 +++ b/Tests/Integration/DSCResources/McAfee.config.ps1 @@ -43,6 +43,7 @@ configuration McAfee_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName PSDscResources Node localhost { diff --git a/Tests/Integration/DSCResources/Office.config.ps1 b/Tests/Integration/DSCResources/Office.config.ps1 index a43bf382e..8fa703f75 100644 --- a/Tests/Integration/DSCResources/Office.config.ps1 +++ b/Tests/Integration/DSCResources/Office.config.ps1 @@ -42,6 +42,7 @@ configuration Office_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName GPRegistryPolicyDsc Node localhost { diff --git a/Tests/Integration/DSCResources/OracleJRE.config.ps1 b/Tests/Integration/DSCResources/OracleJRE.config.ps1 index f2a6d3d9a..eb64b81a1 100644 --- a/Tests/Integration/DSCResources/OracleJRE.config.ps1 +++ b/Tests/Integration/DSCResources/OracleJRE.config.ps1 @@ -52,6 +52,7 @@ configuration OracleJRE_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName FileContentDsc Node localhost { diff --git a/Tests/Integration/DSCResources/SqlServer.config.ps1 b/Tests/Integration/DSCResources/SqlServer.config.ps1 index 2bab666b2..6b194365b 100644 --- a/Tests/Integration/DSCResources/SqlServer.config.ps1 +++ b/Tests/Integration/DSCResources/SqlServer.config.ps1 @@ -43,6 +43,7 @@ configuration SqlServer_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName SqlServerDsc Node localhost { diff --git a/Tests/Integration/DSCResources/Vsphere.config.ps1 b/Tests/Integration/DSCResources/Vsphere.config.ps1 index 3d7272dd6..47e0b6784 100644 --- a/Tests/Integration/DSCResources/Vsphere.config.ps1 +++ b/Tests/Integration/DSCResources/Vsphere.config.ps1 @@ -66,6 +66,7 @@ configuration Vsphere_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName VMware.vSphereDSC Node localhost { diff --git a/Tests/Integration/DSCResources/WindowsClient.config.ps1 b/Tests/Integration/DSCResources/WindowsClient.config.ps1 index 0bdb4c21a..9dd3f06f6 100644 --- a/Tests/Integration/DSCResources/WindowsClient.config.ps1 +++ b/Tests/Integration/DSCResources/WindowsClient.config.ps1 @@ -52,6 +52,7 @@ configuration WindowsClient_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName AccessControlDSC Node localhost { diff --git a/Tests/Integration/DSCResources/WindowsDefender.config.ps1 b/Tests/Integration/DSCResources/WindowsDefender.config.ps1 index f0e46093f..0fa41eebb 100644 --- a/Tests/Integration/DSCResources/WindowsDefender.config.ps1 +++ b/Tests/Integration/DSCResources/WindowsDefender.config.ps1 @@ -42,6 +42,7 @@ configuration WindowsDefender_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName GPRegistryPolicyDsc Node localhost { diff --git a/Tests/Integration/DSCResources/WindowsDnsServer.config.ps1 b/Tests/Integration/DSCResources/WindowsDnsServer.config.ps1 index 26a75b3ac..fde9ebfae 100644 --- a/Tests/Integration/DSCResources/WindowsDnsServer.config.ps1 +++ b/Tests/Integration/DSCResources/WindowsDnsServer.config.ps1 @@ -52,6 +52,7 @@ configuration WindowsDnsServer_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName AccessControlDSC Node localhost { diff --git a/Tests/Integration/DSCResources/WindowsFirewall.config.ps1 b/Tests/Integration/DSCResources/WindowsFirewall.config.ps1 index 4cf661d68..07b70d469 100644 --- a/Tests/Integration/DSCResources/WindowsFirewall.config.ps1 +++ b/Tests/Integration/DSCResources/WindowsFirewall.config.ps1 @@ -42,6 +42,7 @@ configuration WindowsFirewall_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName PSDscResources Node localhost { diff --git a/Tests/Integration/DSCResources/WindowsServer.config.ps1 b/Tests/Integration/DSCResources/WindowsServer.config.ps1 index 6abc69f03..bc78a7479 100644 --- a/Tests/Integration/DSCResources/WindowsServer.config.ps1 +++ b/Tests/Integration/DSCResources/WindowsServer.config.ps1 @@ -52,6 +52,7 @@ configuration WindowsServer_config ) Import-DscResource -ModuleName PowerStig + Import-DscResource -ModuleName AccessControlDSC Node localhost { diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9b67befcf..4d61362d1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -135,6 +135,7 @@ stages: - powershell: | winrm quickconfig -quiet + Set-WsManInstance -ResourceURI winrm/config -ValueSet @{ MaxEnvelopeSizekb = 8192 } displayName: Configure WinRM - task: PowerShell@2 From a7ce2e3cc0ec62bfeb19b72af204b2c38614fc30 Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 19 Dec 2025 12:30:16 -0600 Subject: [PATCH 6/7] required modules outside of output folder --- .gitignore | 3 +++ build.ps1 | 37 +++++++++++++++++-------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index d59a4e5c5..00b8f1241 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ # local preference scripts/utilities .local/ +# Required modules folder +RequiredModules/ + # Build output folder output/ diff --git a/build.ps1 b/build.ps1 index 1f9156663..2a2b24e31 100644 --- a/build.ps1 +++ b/build.ps1 @@ -33,7 +33,7 @@ param # You can override the value for PSDepend in the Build.psd1 build manifest # This defaults to $OutputDirectory/modules (by default: ./output/modules) [Parameter()] - $RequiredModulesDirectory = $(Join-Path 'output' 'RequiredModules'), + $RequiredModulesDirectory = 'RequiredModules', [Parameter()] [object[]] @@ -228,28 +228,25 @@ Begin # Set up a mini virtual environment... PSDependOptions = @{ AddToPath = $true - Target = 'output\RequiredModules' - Parameters = @{ - - } + Target = 'RequiredModules' + Parameters = @{} } - InvokeBuild = 'latest' - PSScriptAnalyzer = 'latest' - Pester = '4.10.1' - Plaster = 'latest' - ModuleBuilder = '1.0.0' - ChangelogManagement = 'latest' - Sampler = '0.104.0' - xDSCResourceDesigner = 'latest' - PSPKI = 'latest' - MarkdownLinkCheck = 'latest' - 'DscResource.Test' = '0.13.1' - 'DscResource.AnalyzerRules' = 'latest' - 'powershell-yaml' = 'latest' - 'Vmware.VsphereDSC' = '2.1.0.58' + InvokeBuild = 'latest' + PSScriptAnalyzer = 'latest' + Pester = '4.10.1' + Plaster = 'latest' + ModuleBuilder = '1.0.0' + ChangelogManagement = 'latest' + Sampler = '0.104.0' + xDSCResourceDesigner = 'latest' + PSPKI = 'latest' + MarkdownLinkCheck = 'latest' + 'DscResource.Test' = '0.13.1' + 'DscResource.AnalyzerRules' = 'latest' + 'powershell-yaml' = 'latest' + 'Vmware.VsphereDSC' = '2.1.0.58' # The modules below are dynamically inserted from the Begin block of .\build.ps1 - '@ $stringBuilder = New-Object -TypeName System.Text.StringBuilder -ArgumentList $requiredModulesContent From f7d4a8cf95cb62bd81c7c28a5c3b3f72d673dd38 Mon Sep 17 00:00:00 2001 From: Brian West Date: Mon, 29 Dec 2025 19:54:47 -0600 Subject: [PATCH 7/7] formatting --- .../DSCResources/Common.integration.ps1 | 2 +- build.ps1 | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Tests/Integration/DSCResources/Common.integration.ps1 b/Tests/Integration/DSCResources/Common.integration.ps1 index 9c1a969f8..5db414d59 100644 --- a/Tests/Integration/DSCResources/Common.integration.ps1 +++ b/Tests/Integration/DSCResources/Common.integration.ps1 @@ -31,7 +31,7 @@ Describe ($title + " $($stig.StigVersion) mof output") { } It 'Should compile a useable MOF' { - { Test-DscConfiguration -Path $testParameterList.OutputPath } | Should -Not -Throw + { Test-DscConfiguration -Path $testParameterList['OutputPath'] } | Should -Not -Throw } $ruleNames = (Get-Member -InputObject $powerstigXml | diff --git a/build.ps1 b/build.ps1 index 2a2b24e31..b84cfefee 100644 --- a/build.ps1 +++ b/build.ps1 @@ -8,7 +8,8 @@ param ( [Parameter(Position = 0)] - [string[]]$Tasks = '.', + [string[]] + $Tasks = '.', [Parameter()] [String] @@ -262,21 +263,27 @@ Begin Set-Content -Path (Join-Path -Path $PSScriptRoot -ChildPath 'RequiredModules.psd1') -Value $stringBuilder.ToString() -Encoding UTF8 # Find build config if not specified - if (-not $BuildConfig) { + if (-not $BuildConfig) + { $config = Get-ChildItem -Path "$PSScriptRoot\*" -Include 'build.y*ml', 'build.psd1', 'build.json*' -ErrorAction:Ignore - if (-not $config -or ($config -is [array] -and $config.Length -le 0)) { + if (-not $config -or ($config -is [array] -and $config.Length -le 0)) + { throw "No build configuration found. Specify path via -BuildConfig" } - elseif ($config -is [array]) { - if ($config.Length -gt 1) { + elseif ($config -is [array]) + { + if ($config.Length -gt 1) + { throw "More than one build configuration found. Specify which one to use via -BuildConfig" } $BuildConfig = $config[0] } - else { + else + { $BuildConfig = $config } } + # Bootstrapping the environment before using Invoke-Build as task runner if ($MyInvocation.ScriptName -notLike '*Invoke-Build.ps1')