mirror of
https://github.com/gradle/actions.git
synced 2025-12-08 17:15:46 +08:00
Capture config-cache hit in build results
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
import org.gradle.tooling.events.*
|
||||
import org.gradle.tooling.events.task.*
|
||||
import org.gradle.internal.operations.*
|
||||
import org.gradle.initialization.*
|
||||
import org.gradle.api.internal.tasks.execution.*
|
||||
import org.gradle.execution.*
|
||||
import org.gradle.internal.build.event.BuildEventListenerRegistryInternal
|
||||
import org.gradle.util.GradleVersion
|
||||
|
||||
settingsEvaluated { settings ->
|
||||
@@ -11,11 +16,12 @@ settingsEvaluated { settings ->
|
||||
spec.getParameters().getInvocationId().set(gradle.ext.invocationId)
|
||||
})
|
||||
|
||||
gradle.services.get(BuildEventsListenerRegistry).onTaskCompletion(projectTracker)
|
||||
gradle.services.get(BuildEventListenerRegistryInternal).onOperationCompletion(projectTracker)
|
||||
}
|
||||
|
||||
abstract class BuildResultsRecorder implements BuildService<BuildResultsRecorder.Params>, OperationCompletionListener, AutoCloseable {
|
||||
abstract class BuildResultsRecorder implements BuildService<BuildResultsRecorder.Params>, BuildOperationListener, AutoCloseable {
|
||||
private boolean buildFailed = false
|
||||
private boolean configCacheHit = true
|
||||
interface Params extends BuildServiceParameters {
|
||||
Property<String> getRootProjectName()
|
||||
Property<String> getRootProjectDir()
|
||||
@@ -24,9 +30,19 @@ abstract class BuildResultsRecorder implements BuildService<BuildResultsRecorder
|
||||
Property<String> getInvocationId()
|
||||
}
|
||||
|
||||
public void onFinish(FinishEvent finishEvent) {
|
||||
if (finishEvent instanceof TaskFinishEvent && finishEvent.result instanceof TaskFailureResult) {
|
||||
buildFailed = true
|
||||
void started(BuildOperationDescriptor buildOperation, OperationStartEvent startEvent) {}
|
||||
|
||||
void progress(OperationIdentifier operationIdentifier, OperationProgressEvent progressEvent) {}
|
||||
|
||||
void finished(BuildOperationDescriptor buildOperation, OperationFinishEvent finishEvent) {
|
||||
if (buildOperation.details in EvaluateSettingsBuildOperationType.Details) {
|
||||
// Got EVALUATE SETTINGS event: not a config-cache hit"
|
||||
configCacheHit = false
|
||||
}
|
||||
if (buildOperation.details in RunRootBuildWorkBuildOperationType.Details) {
|
||||
if (finishEvent.failure != null) {
|
||||
buildFailed = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +54,8 @@ abstract class BuildResultsRecorder implements BuildService<BuildResultsRecorder
|
||||
requestedTasks: getParameters().getRequestedTasks().get(),
|
||||
gradleVersion: GradleVersion.current().version,
|
||||
gradleHomeDir: getParameters().getGradleHomeDir().get(),
|
||||
buildFailed: buildFailed
|
||||
buildFailed: buildFailed,
|
||||
configCacheHit: configCacheHit
|
||||
]
|
||||
|
||||
def runnerTempDir = System.getProperty("RUNNER_TEMP") ?: System.getenv("RUNNER_TEMP")
|
||||
|
||||
@@ -76,7 +76,8 @@ void captureUsingBuildFinished(gradle, String invocationId, ResultsWriter result
|
||||
requestedTasks: gradle.startParameter.taskNames.join(" "),
|
||||
gradleVersion: GradleVersion.current().version,
|
||||
gradleHomeDir: gradle.gradleHomeDir.absolutePath,
|
||||
buildFailed: result.failure != null
|
||||
buildFailed: result.failure != null,
|
||||
configCacheHit: false
|
||||
]
|
||||
resultsWriter.writeToResultsFile("build-results", invocationId, buildResults)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user