@@ -19,37 +19,97 @@ permissions:
1919jobs :
2020 ActionTestSrcSourceCode :
2121 name : Action-Test - [Src-SourceCode]
22- uses : ./.github/workflows/ActionTestWorkflow.yml
23- with :
24- TestType : Src-SourceCode
25- Path : tests/srcTestRepo/src
26- Settings : SourceCode
22+ runs-on : ubuntu-latest
23+ outputs :
24+ Outcome : ${{ steps.action-test.outcome }}
25+ Conclusion : ${{ steps.action-test.conclusion }}
26+ steps :
27+ - name : Checkout repo
28+ uses : actions/checkout@v4
29+
30+ - name : Action-Test
31+ uses : ./
32+ id : action-test
33+ with :
34+ Path : tests/srcTestRepo/src
35+ Settings : SourceCode
36+
37+ - name : Status
38+ shell : pwsh
39+ run : |
40+ Write-Host "Outcome: ${{ steps.action-test.outcome }}"
41+ Write-Host "Conclusion: ${{ steps.action-test.conclusion }}"
2742
2843 ActionTestSrcCustom :
2944 name : Action-Test - [Src-Custom]
30- uses : ./.github/workflows/ActionTestWorkflow.yml
31- with :
32- TestType : Src-Custom
33- Path : tests/srcTestRepo/src
34- Settings : Custom
35- SettingsFilePath : tests/srcTestRepo/tests/Custom.Settings.psd1
45+ runs-on : ubuntu-latest
46+ outputs :
47+ Outcome : ${{ steps.action-test.outcome }}
48+ Conclusion : ${{ steps.action-test.conclusion }}
49+ steps :
50+ - name : Checkout repo
51+ uses : actions/checkout@v4
52+
53+ - name : Action-Test
54+ uses : ./
55+ id : action-test
56+ with :
57+ Path : tests/srcTestRepo/src
58+ Settings : Custom
59+ SettingsFilePath : tests/srcTestRepo/tests/Custom.Settings.psd1
60+
61+ - name : Status
62+ shell : pwsh
63+ run : |
64+ Write-Host "Outcome: ${{ steps.action-test.outcome }}"
65+ Write-Host "Conclusion: ${{ steps.action-test.conclusion }}"
3666
3767 ActionTestSrcWithManifest :
3868 name : Action-Test - [Src-WithManifest]
39- uses : ./.github/workflows/ActionTestWorkflow.yml
40- with :
41- TestType : Src-WithManifest
42- Path : tests/srcWithManifestTestRepo/src
43- Settings : SourceCode
69+ runs-on : ubuntu-latest
70+ outputs :
71+ Outcome : ${{ steps.action-test.outcome }}
72+ Conclusion : ${{ steps.action-test.conclusion }}
73+ steps :
74+ - name : Checkout repo
75+ uses : actions/checkout@v4
76+
77+ - name : Action-Test
78+ uses : ./
79+ continue-on-error : true
80+ id : action-test
81+ with :
82+ Path : tests/srcWithManifestTestRepo/src
83+ Settings : SourceCode
84+
85+ - name : Status
86+ shell : pwsh
87+ run : |
88+ Write-Host "Outcome: ${{ steps.action-test.outcome }}"
89+ Write-Host "Conclusion: ${{ steps.action-test.conclusion }}"
4490
4591 ActionTestOutputs :
4692 name : Action-Test - [outputs]
47- uses : ./.github/workflows/ActionTestWorkflow.yml
48- with :
49- TestType : outputs
50- Path : tests/outputTestRepo/outputs/modules/PSModuleTest
51- Settings : Module
93+ runs-on : ubuntu-latest
94+ outputs :
95+ Outcome : ${{ steps.action-test.outcome }}
96+ Conclusion : ${{ steps.action-test.conclusion }}
97+ steps :
98+ - name : Checkout repo
99+ uses : actions/checkout@v4
100+
101+ - name : Action-Test
102+ uses : ./
103+ id : action-test
104+ with :
105+ Path : tests/outputTestRepo/outputs/modules/PSModuleTest
106+ Settings : Module
52107
108+ - name : Status
109+ shell : pwsh
110+ run : |
111+ Write-Host "Outcome: ${{ steps.action-test.outcome }}"
112+ Write-Host "Conclusion: ${{ steps.action-test.conclusion }}"
53113
54114 CatchJob :
55115 name : Aggregate Status
@@ -73,4 +133,96 @@ jobs:
73133 - name : Aggregated Status
74134 uses : PSModule/Github-Script@v1
75135 with :
76- Script : ./tests/Get-AggregatedStatus.ps1
136+ Script : |
137+ Install-PSResource -Name Markdown -Repository PSGallery -TrustRepository
138+
139+ # Build an array of objects for each job
140+ $ActionTestSrcSourceCodeExpectedOutcome = 'success'
141+ $ActionTestSrcSourceCodeOutcomeResult = $env:ActionTestSrcSourceCodeOutcome -eq $ActionTestSrcSourceCodeExpectedOutcome
142+ $ActionTestSrcSourceCodeExpectedConclusion = 'success'
143+ $ActionTestSrcSourceCodeConclusionResult = $env:ActionTestSrcSourceCodeConclusion -eq $ActionTestSrcSourceCodeExpectedConclusion
144+
145+ $ActionTestSrcCustomExpectedOutcome = 'success'
146+ $ActionTestSrcCustomOutcomeResult = $env:ActionTestSrcCustomOutcome -eq $ActionTestSrcCustomExpectedOutcome
147+ $ActionTestSrcCustomExpectedConclusion = 'success'
148+ $ActionTestSrcCustomConclusionResult = $env:ActionTestSrcCustomConclusion -eq $ActionTestSrcCustomExpectedConclusion
149+
150+ $ActionTestSrcWithManifestExpectedOutcome = 'failure'
151+ $ActionTestSrcWithManifestOutcomeResult = $env:ActionTestSrcWithManifestOutcome -eq $ActionTestSrcWithManifestExpectedOutcome
152+ $ActionTestSrcWithManifestExpectedConclusion = 'success'
153+ $ActionTestSrcWithManifestConclusionResult = $env:ActionTestSrcWithManifestConclusion -eq $ActionTestSrcWithManifestExpectedConclusion
154+
155+ $ActionTestOutputsExpectedOutcome = 'success'
156+ $ActionTestOutputsOutcomeResult = $env:ActionTestOutputsOutcome -eq $ActionTestOutputsExpectedOutcome
157+ $ActionTestOutputsExpectedConclusion = 'success'
158+ $ActionTestOutputsConclusionResult = $env:ActionTestOutputsConclusion -eq $ActionTestOutputsExpectedConclusion
159+
160+ $jobs = @(
161+ [PSCustomObject]@{
162+ Name = 'Action-Test - [Src-SourceCode]'
163+ Outcome = $env:ActionTestSrcSourceCodeOutcome
164+ ExpectedOutcome = $ActionTestSrcSourceCodeExpectedOutcome
165+ PassedOutcome = $ActionTestSrcSourceCodeOutcomeResult
166+ Conclusion = $env:ActionTestSrcSourceCodeConclusion
167+ ExpectedConclusion = $ActionTestSrcSourceCodeExpectedConclusion
168+ PassedConclusion = $ActionTestSrcSourceCodeConclusionResult
169+ },
170+ [PSCustomObject]@{
171+ Name = 'Action-Test - [Src-Custom]'
172+ Outcome = $env:ActionTestSrcCustomOutcome
173+ ExpectedOutcome = $ActionTestSrcCustomExpectedOutcome
174+ PassedOutcome = $ActionTestSrcCustomOutcomeResult
175+ Conclusion = $env:ActionTestSrcCustomConclusion
176+ ExpectedConclusion = $ActionTestSrcCustomExpectedConclusion
177+ PassedConclusion = $ActionTestSrcCustomConclusionResult
178+ },
179+ [PSCustomObject]@{
180+ Name = 'Action-Test - [Src-WithManifest]'
181+ Outcome = $env:ActionTestSrcWithManifestOutcome
182+ ExpectedOutcome = $ActionTestSrcWithManifestExpectedOutcome
183+ PassedOutcome = $ActionTestSrcWithManifestOutcomeResult
184+ Conclusion = $env:ActionTestSrcWithManifestConclusion
185+ ExpectedConclusion = $ActionTestSrcWithManifestExpectedConclusion
186+ PassedConclusion = $ActionTestSrcWithManifestConclusionResult
187+ },
188+ [PSCustomObject]@{
189+ Name = 'Action-Test - [outputs]'
190+ Outcome = $env:ActionTestOutputsOutcome
191+ ExpectedOutcome = $ActionTestOutputsExpectedOutcome
192+ PassedOutcome = $ActionTestOutputsOutcomeResult
193+ Conclusion = $env:ActionTestOutputsConclusion
194+ ExpectedConclusion = $ActionTestOutputsExpectedConclusion
195+ PassedConclusion = $ActionTestOutputsConclusionResult
196+ }
197+ )
198+
199+ # Display the table in the workflow logs
200+ $jobs | Format-List
201+
202+ $passed = $true
203+ $jobs | ForEach-Object {
204+ if (-not $_.PassedOutcome) {
205+ Write-Error "Job $($_.Name) failed with Outcome $($_.Outcome) and Expected Outcome $($_.ExpectedOutcome)"
206+ $passed = $false
207+ }
208+
209+ if (-not $_.PassedConclusion) {
210+ Write-Error "Job $($_.Name) failed with Conclusion $($_.Conclusion) and Expected Conclusion $($_.ExpectedConclusion)"
211+ $passed = $false
212+ }
213+ }
214+
215+ $icon = if ($passed) { '✅' } else { '❌' }
216+ $status = Heading 1 "$icon - GitHub Actions Status" {
217+ Table {
218+ $jobs
219+ }
220+ }
221+
222+ Set-GitHubStepSummary -Summary $status
223+
224+ if (-not $passed) {
225+ Write-GitHubError 'One or more jobs failed'
226+ exit 1
227+ }
228+
0 commit comments