Skip to content

Commit 91b6e3c

Browse files
Merge pull request #114 from WarehouseFinds/feat/last_review
Add matrix.os for Unit Tests
2 parents 27ad6ab + e18b9c3 commit 91b6e3c

File tree

3 files changed

+27
-25
lines changed

3 files changed

+27
-25
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,13 @@
1+
# Description
2+
13
<!-- Provide a brief description of the changes in this PR -->
2-
<!-- tip: use GitHub Copilot to generate description -->
4+
<!-- tip: use GitHub Copilot to generate description -->
5+
6+
## Type of Change
7+
8+
<!-- Select one by placing an 'x' in the brackets -->
9+
- [ ] Bug fix
10+
- [ ] New feature
11+
- [ ] Breaking change
12+
- [ ] Documentation update
13+
- [ ] Code quality improvement (refactoring, tests, performance)

.github/workflows/powershell-script-module-analysis-unit-tests.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ jobs:
1414
pull-requests: write
1515
checks: write
1616
name: Pester
17-
runs-on: [ubuntu-latest]
17+
strategy:
18+
matrix:
19+
os: [ubuntu-latest, windows-latest, macos-latest]
20+
# We need to run on Ubuntu, Windows and MacOS to ensure cross-platform compatibility
21+
# Using matrix strategy to define OSes
22+
runs-on: ${{ matrix.os }}
1823
steps:
1924
- name: Checkout repository
2025
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 #v6.01
@@ -35,6 +40,7 @@ jobs:
3540
Invoke-Build -Task Invoke-UnitTests
3641
3742
- name: Publish Unit Test Results
43+
if: matrix.os == 'ubuntu-latest'
3844
uses: EnricoMi/publish-unit-test-result-action@27d65e188ec43221b20d26de30f4892fad91df2f #v2.22.0
3945
with:
4046
job_summary: true
@@ -45,12 +51,14 @@ jobs:
4551
test-results/unit-tests.xml
4652
4753
- name: Setup .NET Core for ReportGenerator
54+
if: matrix.os == 'ubuntu-latest'
4855
uses: actions/setup-dotnet@baa11fbfe1d6520db94683bd5c7a3818018e4309 #v5.1
4956
with:
5057
dotnet-version: 10.x
5158
dotnet-quality: 'ga'
5259

5360
- name: Run ReportGenerator on Code Coverage Report
61+
if: matrix.os == 'ubuntu-latest'
5462
uses: danielpalme/ReportGenerator-GitHub-Action@ee0ae774f6d3afedcbd1683c1ab21b83670bdf8e #5.5.1
5563
with:
5664
reports: 'test-results/codecoverage/code-coverage.xml'
@@ -62,10 +70,11 @@ jobs:
6270
toolpath: 'reportgeneratortool'
6371

6472
- name: Publish code coverage summary
65-
shell: bash
73+
if: matrix.os == 'ubuntu-latest' # Only need to publish once
6674
run: cat test-results/codecoverage/report/SummaryGithub.md >> $GITHUB_STEP_SUMMARY
6775

6876
- name: Upload coverage report artifact
77+
if: matrix.os == 'ubuntu-latest'
6978
uses: actions/upload-artifact@v6
7079
with:
7180
name: CoverageReport
Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
name: '[template] PS Cache Dependencies'
1+
name: '[template] PS Resolve Dependencies'
22
permissions: read-all
33
on:
44
workflow_call:
55
outputs:
66
module-list:
77
description: 'Comma-separated list of PowerShell modules to install and cache'
8-
value: ${{ jobs.setup-powershell-dependencies.outputs.module-list }}
8+
value: ${{ jobs.resolve-powershell-dependencies.outputs.module-list }}
99

1010
jobs:
11-
setup-powershell-dependencies:
11+
resolve-powershell-dependencies:
1212
name: Dependencies
13-
runs-on: [ubuntu-latest]
13+
runs-on: ubuntu-latest
1414
outputs:
1515
module-list: ${{ steps.resolve-dependencies.outputs.module-list }}
1616
steps:
@@ -23,7 +23,6 @@ jobs:
2323
id: resolve-dependencies
2424
shell: pwsh
2525
run: |
26-
# Resolve module dependencies from requirements.psd1
2726
$moduleRequirements = Import-PowerShellDataFile -Path './requirements.psd1'
2827
$moduleList = foreach ($module in $moduleRequirements.GetEnumerator()) {
2928
$moduleName = $module.Key
@@ -45,20 +44,3 @@ jobs:
4544
}
4645
$moduleList = $moduleList | Sort-Object | Join-String -Separator ','
4746
"module-list=$moduleList" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
48-
49-
- name: Install and cache PowerShell modules
50-
uses: potatoqualitee/psmodulecache@ee5e9494714abf56f6efbfa51527b2aec5c761b8 #v6.2.1
51-
with:
52-
modules-to-cache: ${{ steps.resolve-dependencies.outputs.module-list }}
53-
shell: pwsh
54-
updatable: false
55-
56-
- name: Verify installed modules
57-
shell: pwsh
58-
run: |
59-
# Verify that required modules are installed
60-
$moduleRequirements = Import-PowerShellDataFile -Path './requirements.psd1'
61-
foreach ($moduleName in $moduleRequirements.Keys) {
62-
Get-Module -ListAvailable -Name $moduleName -ErrorAction Stop
63-
}
64-

0 commit comments

Comments
 (0)