Skip to content

Commit 2c0254a

Browse files
generate test reports
1 parent 3e20bbb commit 2c0254a

File tree

2 files changed

+80
-10
lines changed

2 files changed

+80
-10
lines changed

.github/workflow-gen/Program.cs

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Logicality.GitHub.Actions.Workflow;
55
using System.ComponentModel;
66
using System.IO;
7+
using System.Net.WebSockets;
78
using static GitHubContexts;
89

910
var contexts = Instance;
@@ -33,9 +34,11 @@
3334
{
3435
GenerateCiWorkflow(component);
3536
GenerateReleaseWorkflow(component);
36-
GenerateUploadTestResultsWorkflow(component);
3737
}
3838

39+
GenerateUploadTestResultsWorkflow();
40+
41+
3942
void GenerateCiWorkflow(Component component)
4043
{
4144
var workflow = new Workflow(component.CiWorkflowName);
@@ -175,12 +178,12 @@ git tag -a {component.TagPrefix}-{contexts.Event.Input.Version} -m ""Release v{c
175178
WriteWorkflow(workflow, fileName);
176179
}
177180

178-
void GenerateUploadTestResultsWorkflow(Component component)
181+
void GenerateUploadTestResultsWorkflow()
179182
{
180-
var workflow = new Workflow(component.TestResultWorkflowName);
183+
var workflow = new Workflow("generate-test-reports");
181184
workflow.On
182185
.WorkflowRun()
183-
.Workflows(component.TestResultWorkflowName)
186+
.Workflows(components.Select(x => x.CiWorkflowName).ToArray())
184187
.Types("completed");
185188

186189
var job = workflow
@@ -194,11 +197,16 @@ void GenerateUploadTestResultsWorkflow(Component component)
194197
checks: Permission.Write,
195198
packages: Permission.Write);
196199

197-
foreach (var testProject in component.Tests)
200+
foreach (var component in components)
198201
{
199-
job.StepGenerateReportFromTestArtifact(component.Name, testProject);
202+
foreach (var testProject in component.Tests)
203+
{
204+
job.StepGenerateReportFromTestArtifact(component, testProject);
205+
}
200206
}
201207

208+
var fileName = $"generate-test-reports";
209+
WriteWorkflow(workflow, fileName);
202210
}
203211

204212
void WriteWorkflow(Workflow workflow, string fileName)
@@ -279,17 +287,17 @@ public static void StepUploadTestResultsAsArtifact(this Job job, string[] testPr
279287
("retention-days", "5"));
280288
}
281289

282-
public static void StepGenerateReportFromTestArtifact(this Job job, string componentName, string testProject)
290+
internal static void StepGenerateReportFromTestArtifact(this Job job, Component component, string testProject)
283291
{
284292
var path = $"test/{testProject}";
285293
job.Step()
286-
.Name($"Test report - {testProject}")
294+
.Name($"Test report - {component.Name} - {testProject}")
287295
.Uses("dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5") // v1.9.1
288-
.If("github.event == 'push' && (success() || failure())")
296+
.If($"github.event.workflow_run.workflow == '{component.CiWorkflowName}'")
289297
.With(
290298
("artifact", "test-results"),
291299
("name", $"Test Report - {testProject}"),
292-
("path", $"{componentName}/{path}/TestResults/{LogFileName}"),
300+
("path", $"{component.Name}/{path}/TestResults/{LogFileName}"),
293301
("reporter", "dotnet-trx"),
294302
("fail-on-error", "true"),
295303
("fail-on-empty", "true"));
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# This was generated by tool. Edits will be overwritten.
2+
3+
name: generate-test-reports
4+
on:
5+
workflow_run:
6+
workflows:
7+
- 'ignore-this/ci'
8+
- 'access-token-management/ci'
9+
- 'identity-model/ci'
10+
- 'identity-model-oidc-client/ci'
11+
types:
12+
- completed
13+
jobs:
14+
report:
15+
name: report
16+
runs-on: ubuntu-latest
17+
permissions:
18+
actions: read
19+
checks: write
20+
contents: read
21+
packages: write
22+
steps:
23+
- name: Test report - ignore-this - IgnoreThis.Tests
24+
if: github.event.workflow_run.workflow == 'ignore-this/ci'
25+
uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5
26+
with:
27+
artifact: test-results
28+
name: Test Report - IgnoreThis.Tests
29+
path: ignore-this/test/IgnoreThis.Tests/TestResults/Tests.trx
30+
reporter: dotnet-trx
31+
fail-on-error: true
32+
fail-on-empty: true
33+
- name: Test report - access-token-management - AccessTokenManagement.Tests
34+
if: github.event.workflow_run.workflow == 'access-token-management/ci'
35+
uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5
36+
with:
37+
artifact: test-results
38+
name: Test Report - AccessTokenManagement.Tests
39+
path: access-token-management/test/AccessTokenManagement.Tests/TestResults/Tests.trx
40+
reporter: dotnet-trx
41+
fail-on-error: true
42+
fail-on-empty: true
43+
- name: Test report - identity-model - IdentityModel.Tests
44+
if: github.event.workflow_run.workflow == 'identity-model/ci'
45+
uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5
46+
with:
47+
artifact: test-results
48+
name: Test Report - IdentityModel.Tests
49+
path: identity-model/test/IdentityModel.Tests/TestResults/Tests.trx
50+
reporter: dotnet-trx
51+
fail-on-error: true
52+
fail-on-empty: true
53+
- name: Test report - identity-model-oidc-client - IdentityModel.OidcClient.Tests
54+
if: github.event.workflow_run.workflow == 'identity-model-oidc-client/ci'
55+
uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5
56+
with:
57+
artifact: test-results
58+
name: Test Report - IdentityModel.OidcClient.Tests
59+
path: identity-model-oidc-client/test/IdentityModel.OidcClient.Tests/TestResults/Tests.trx
60+
reporter: dotnet-trx
61+
fail-on-error: true
62+
fail-on-empty: true

0 commit comments

Comments
 (0)