Write job summary in post action

- Save build results in file encoded as JSON
- Read all build results in post action and render as table in job summary
This commit is contained in:
Daz DeBoer 2022-06-02 12:57:35 -06:00
parent 5fe4df6233
commit 86e82987ba
No known key found for this signature in database
GPG key ID: DD6B9F0B06683D5D
3 changed files with 78 additions and 10 deletions

View file

@ -33,17 +33,23 @@ def registerCallbacks(buildScanExtension, rootProjectName) {
}
buildScanPublished { buildScan ->
def gradleCommand = rootProjectName + " " + gradle.startParameter.taskNames.join(" ")
def buildResultsDir = new File(System.getenv("RUNNER_TEMP"), ".build-results")
buildResultsDir.mkdirs()
def buildResultsFile = new File(buildResultsDir, System.getenv("GITHUB_ACTION") + System.currentTimeMillis() + ".json")
def requestedTasks = gradle.startParameter.taskNames.join(" ")
def gradleVersion = GradleVersion.current().version
def buildScanUri = buildScan.buildScanUri.toASCIIString()
def buildResults = [
rootProject: rootProjectName,
requestedTasks: requestedTasks,
gradleVersion: gradleVersion,
buildFailed: buildFailed,
buildScanUri: buildScanUri
]
buildResultsFile << groovy.json.JsonOutput.toJson(buildResults)
// Write job summary to magic file defined by GitHub Actions.
def githubSummaryFile = new File(System.getenv("GITHUB_STEP_SUMMARY"))
if (buildFailed) {
githubSummaryFile << ":x: Gradle Build `${gradleCommand}` [![Gradle Enterprise Build Scan](https://img.shields.io/badge/Gradle%20Enterprise%20Build%20Scan%E2%84%A2-FAILED-red?logo=Gradle)](${buildScan.buildScanUri})"
} else {
githubSummaryFile << ":white_check_mark: Gradle Build `${gradleCommand}` [![Gradle Enterprise Build Scan](https://img.shields.io/badge/Gradle%20Enterprise%20Build%20Scan%E2%84%A2-SUCCESS-brightgreen?logo=Gradle)](${buildScan.buildScanUri})"
}
// Send 'set-output' command directly to GitHub Actions via STDOUT.
println("::set-output name=build-scan-url::${buildScan.buildScanUri}")
}
}