Skip to content

Commit 2e65a8e

Browse files
committedOct 23, 2024··
build: Add a job summary to the pipeline
1 parent d4b98c2 commit 2e65a8e

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed
 

‎.github/workflows/build.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ jobs:
3232
run: ./gradlew build publishToMavenLocal
3333

3434
- name: Run zpa-checks integration tests
35-
run: ./gradlew :zpa-checks:integrationTest
35+
run: |
36+
./gradlew :zpa-checks:integrationTest
37+
cat zpa-checks/build/integrationTest/progress-summary.md >> $GITHUB_STEP_SUMMARY
3638
3739
- name: Build custom rules example
3840
run: ./gradlew build -p plsql-custom-rules

‎zpa-checks/src/integrationTest/kotlin/org/sonar/plsqlopen/it/PlSqlRulingTest.kt

+34
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.core.util.DefaultIndenter
2323
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter
2424
import com.fasterxml.jackson.databind.JsonNode
2525
import com.fasterxml.jackson.databind.ObjectMapper
26+
import org.junit.jupiter.api.AfterAll
2627
import org.junit.jupiter.api.Test
2728
import org.junit.jupiter.api.fail
2829
import org.sonar.plsqlopen.checks.CheckList
@@ -244,6 +245,39 @@ class PlSqlRulingTest {
244245
)
245246
}
246247
}
248+
249+
summary.add(SummaryItem(project, files.size, issues.filter { it.check is ParsingErrorCheck }.size))
247250
}
248251

252+
companion object {
253+
private val summary = mutableListOf<SummaryItem>()
254+
255+
@AfterAll
256+
@JvmStatic
257+
fun writeSummary() {
258+
val output = File("build/integrationTest/progress-summary.md")
259+
output.parentFile.mkdirs()
260+
output.writeText("| Project | Files | Parsing Errors | % Success | Status |\n| --- | --- | --- | --- | --- |\n")
261+
262+
for (item in summary.sortedWith(compareByDescending<SummaryItem> { it.parsingErrors }.thenBy { it.name })) {
263+
val successPercentage = ((item.files - item.parsingErrors).toDouble() / item.files) * 100
264+
val status = if (item.parsingErrors > 0) "" else ""
265+
output.appendText(
266+
"| ${item.name} | ${item.files} | ${item.parsingErrors} | ${
267+
String.format(
268+
"%.2f",
269+
successPercentage
270+
)
271+
}% | $status |\n"
272+
)
273+
}
274+
}
275+
}
276+
277+
data class SummaryItem(
278+
val name: String,
279+
val files: Int,
280+
val parsingErrors: Int,
281+
)
282+
249283
}

0 commit comments

Comments
 (0)
Please sign in to comment.