Skip to content

Commit 4c6caba

Browse files
multi: add omitSuccessfulPackages opt (#12)
Co-authored-by: Rob Herley <[email protected]>
1 parent 6063fb3 commit 4c6caba

File tree

5 files changed

+25
-3
lines changed

5 files changed

+25
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Powered by [Job Summaries](https://github.blog/2022-05-09-supercharging-github-a
1111
| moduleDirectory | `.` | relative path to the directory containing the `go.mod` of the module you wish to test |
1212
| testArguments | `./...` | arguments to pass to `go test`, `-json` will be prepended automatically |
1313
| omitUntestedPackages | `false` | omit any go packages that don't have any tests from the summary output |
14+
| omitSuccessfulPackages | `false` | omit any go packages that didn't contain failed tests |
1415
| omitPie | `false` | omit the pie chart from the summary output
1516

1617
## Demo

__tests__/renderer.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const getRenderer = async (): Promise<Renderer> => {
2727
testEvents,
2828
'', // stderr
2929
false, // omitUntestedPackages
30+
false, // omitSuccessfulPackages
3031
false // omitPie
3132
)
3233
}
@@ -105,6 +106,7 @@ describe('renderer', () => {
105106
[],
106107
'',
107108
false,
109+
false,
108110
false
109111
)
110112
await renderer.writeSummary()

src/renderer.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class Renderer {
1616
testEvents: TestEvent[]
1717
stderr: string
1818
omitUntestedPackages: boolean
19+
omitSuccessfulPackages: boolean
1920
omitPie: boolean
2021
packageResults: PackageResult[]
2122
headers: SummaryTableRow = [
@@ -36,12 +37,14 @@ class Renderer {
3637
testEvents: TestEvent[],
3738
stderr: string,
3839
omitUntestedPackages: boolean,
40+
omitSuccessfulPackages: boolean,
3941
omitPie: boolean
4042
) {
4143
this.moduleName = moduleName
4244
this.testEvents = testEvents
4345
this.stderr = stderr
4446
this.omitUntestedPackages = omitUntestedPackages
47+
this.omitSuccessfulPackages = omitSuccessfulPackages
4548
this.omitPie = omitPie
4649
this.packageResults = this.calculatePackageResults()
4750
}
@@ -51,9 +54,11 @@ class Renderer {
5154
* https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary
5255
*/
5356
async writeSummary() {
54-
const resultsToRender = this.packageResults.filter(result =>
55-
this.omitUntestedPackages ? result.hasTests() : true
56-
)
57+
const resultsToRender = this.packageResults
58+
.filter(result => (this.omitUntestedPackages ? result.hasTests() : true))
59+
.filter(result =>
60+
this.omitSuccessfulPackages ? result.justSuccessfulTests() : true
61+
)
5762

5863
if (resultsToRender.length === 0) {
5964
core.debug('no packages with tests, skipping render')

src/results.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ class PackageResult {
3535
return this.testCount() !== 0
3636
}
3737

38+
public justSuccessfulTests(): boolean {
39+
return this.conclusions.pass === 0 && this.conclusions.fail === 0
40+
}
41+
3842
public output(): string {
3943
return this.events.map(e => e.output).join('')
4044
}

src/runner.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class Runner {
1212
moduleDirectory = '.'
1313
testArguments = ['./...']
1414
omitUntestedPackages = false
15+
omitSuccessfulPackages = false
1516
omitPie = false
1617
fromJSONFile: string | null = null
1718

@@ -34,6 +35,7 @@ class Runner {
3435
testEvents,
3536
'',
3637
this.omitUntestedPackages,
38+
this.omitSuccessfulPackages,
3739
this.omitPie
3840
)
3941

@@ -53,6 +55,7 @@ class Runner {
5355
testEvents,
5456
stderr,
5557
this.omitUntestedPackages,
58+
this.omitSuccessfulPackages,
5659
this.omitPie
5760
)
5861

@@ -139,6 +142,13 @@ class Runner {
139142
this.omitUntestedPackages = core.getBooleanInput('omitUntestedPackages')
140143
}
141144

145+
const omitSuccessfulPackages = core.getInput('omitSuccessfulPackages')
146+
if (omitSuccessfulPackages) {
147+
this.omitSuccessfulPackages = core.getBooleanInput(
148+
'omitSuccessfulPackages'
149+
)
150+
}
151+
142152
const omitPie = core.getInput('omitPie')
143153
if (omitPie) {
144154
this.omitPie = core.getBooleanInput('omitPie')

0 commit comments

Comments
 (0)