Skip to content

Use latest PDK fixing acceptance tests #423

Use latest PDK fixing acceptance tests

Use latest PDK fixing acceptance tests #423

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
env:
pdk_version: 3.0.1
module_cache: PSFramework, PSDscResources, AccessControlDSC, powershell-yaml, PSScriptAnalyzer
COVERAGE_ENABLED: 'yes'
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
defaults:
run:
shell: powershell
jobs:
# spec:
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# os: [windows-2019, windows-2022]
# tag: [General, Unit]
# include:
# - tag: General
# results_file: General.Results.xml
# - tag: Unit
# results_file: Unit.Results.xml
# steps:
# - name: "checkout"
# uses: actions/checkout@v3
# - name: "install modules"
# uses: potatoqualitee/[email protected]
# with:
# shell: powershell
# modules-to-cache: ${{ env.module_cache }}
# - name: "configure winrm"
# run: |
# Write-Host 'Ensuring WinRM is configured for DSC'
# Get-ChildItem WSMan:\localhost\Listener\ -OutVariable Listeners | Format-List * -Force
# $HTTPListener = $Listeners | Where-Object -FilterScript { $_.Keys.Contains('Transport=HTTP') }
# If ($HTTPListener.Count -eq 0) {
# winrm create winrm/config/Listener?Address=*+Transport=HTTP
# winrm e winrm/config/listener
# }
# - name: "test"
# run: |
# Import-Module -Name PSDesiredStateConfiguration -Force
# Import-Module -Name .\src\Puppet.Dsc\puppet.dsc.psd1 -Force
# $null = Get-Command -Module Puppet.Dsc
# $ErrorActionPreference = "Stop"
# $ResultsPath = "${{ matrix.results_file }}"
# $TestPath = @(
# (Resolve-Path .\src\Puppet.Dsc\functions)
# (Resolve-Path .\src\Puppet.Dsc\internal\functions)
# (Resolve-Path .\src\Puppet.Dsc\tests\general)
# )
# $Results = .\scripts\invoke_tests.ps1 -TestPath $TestPath -ResultsPath $ResultsPath -Tag ${{ matrix.tag }}
# if ($Results.FailedCount -gt 0) {
# throw "$($Results.FailedCount) tests failed."
# }
# - name: Upload coverage reports to Codecov
# # Only upload report once per CI run
# if: matrix.os == 'windows-2022' && matrix.tag == 'Unit'
# uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# files: ./coverage.xml
# fail_ci_if_error: true
# verbose: true
acceptance:
runs-on: ${{ matrix.os }}
# needs: "spec"
strategy:
fail-fast: false
matrix:
os: [windows-2019, windows-2022]
tag: [Basic]
pwshlib_source: [forge, git]
include:
- pwshlib_source: forge
pwshlib_repo: "puppetlabs/pwshlib"
pwshlib_ref: "latest" # Change to a specific version if desired
results_file: Acceptance.Forge.Results.xml
- pwshlib_source: git
pwshlib_repo: "https://github.com/puppetlabs/ruby-pwsh.git" # Change to another fork if desired
pwshlib_ref: main # Change to another branch if desired
results_file: Acceptance.Git.Results.xml
steps:
- name: "checkout"
uses: actions/checkout@v3
- name: "install modules"
uses: potatoqualitee/[email protected]
with:
shell: powershell
modules-to-cache: ${{ env.module_cache }}
- name: Use my custom action
uses: ./.github/actions/install-pdk
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
pdk_version: ${{ env.pdk_version }}
- name: "configure winrm"
run: |
Write-Host 'Ensuring WinRM is configured for DSC'
Get-ChildItem WSMan:\localhost\Listener\ -OutVariable Listeners | Format-List * -Force
$HTTPListener = $Listeners | Where-Object -FilterScript { $_.Keys.Contains('Transport=HTTP') }
If ($HTTPListener.Count -eq 0) {
winrm create winrm/config/Listener?Address=*+Transport=HTTP
winrm e winrm/config/listener
}
- name: "test"
run: |
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv
Import-Module -Name PSDesiredStateConfiguration -Force
Import-Module -Name .\src\Puppet.Dsc\puppet.dsc.psd1 -Force
$null = Get-Command -Module Puppet.Dsc
$ErrorActionPreference = "Stop"
$TestParameters = @{
TestPath = @((Resolve-Path .\acceptance))
ResultsPath = "${{ matrix.results_file }}"
Tag = "${{ matrix.tag }}"
PwshLibSource = "${{ matrix.pwshlib_source }}"
PwshLibRepo = "${{ matrix.pwshlib_repo }}"
PwshLibReference = "${{ matrix.pwshlib_ref }}"
}
$Results = .\scripts\invoke_tests.ps1 @TestParameters
if ($Results.FailedCount -gt 0) {
throw "$($Results.FailedCount) tests failed."
}