mirror of
https://github.com/gradle/actions.git
synced 2025-11-26 17:09:10 +08:00
Avoid capturing build-results for cache cleanup
The Gradle build used to perform cache-cleanup will run in the context of init-scripts provided by the action, including those that collect build-results. In some circumstances this can lead to unexpected results, such as saving configuration-cache entries for cache cleanup executions. With this change, build results will not be captured for cache-cleanup builds.
This commit is contained in:
@@ -6,6 +6,7 @@ import org.gradle.api.internal.tasks.execution.*
|
||||
import org.gradle.execution.*
|
||||
import org.gradle.internal.build.event.BuildEventListenerRegistryInternal
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.slf4j.LoggerFactory
|
||||
|
||||
settingsEvaluated { settings ->
|
||||
def projectTracker = gradle.sharedServices.registerIfAbsent("gradle-action-buildResultsRecorder", BuildResultsRecorder, { spec ->
|
||||
@@ -20,6 +21,7 @@ settingsEvaluated { settings ->
|
||||
}
|
||||
|
||||
abstract class BuildResultsRecorder implements BuildService<BuildResultsRecorder.Params>, BuildOperationListener, AutoCloseable {
|
||||
private final logger = LoggerFactory.getLogger("gradle/actions")
|
||||
private boolean buildFailed = false
|
||||
private boolean configCacheHit = true
|
||||
interface Params extends BuildServiceParameters {
|
||||
@@ -69,6 +71,7 @@ abstract class BuildResultsRecorder implements BuildService<BuildResultsRecorder
|
||||
buildResultsDir.mkdirs()
|
||||
def buildResultsFile = new File(buildResultsDir, githubActionStep + getParameters().getInvocationId().get() + ".json")
|
||||
if (!buildResultsFile.exists()) {
|
||||
logger.lifecycle("gradle/actions: Writing build results to ${buildResultsFile}")
|
||||
buildResultsFile << groovy.json.JsonOutput.toJson(buildResults)
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user