我可以采取哪些措施来减少代码存储库检查运行所需的时间?
如果您想了解有关检查中哪一步花费时间最长的更多详细信息,您可以将以下内容添加到末尾的
transforms-python/build.gradle
文件中:
import java.util.concurrent.TimeUnit
// Log timings per task.
class TimingsListener implements TaskExecutionListener, BuildListener {
private long startTime
private timings = []
@Override
void beforeExecute(Task task) {
startTime = System.nanoTime()
}
@Override
void afterExecute(Task task, TaskState taskState) {
def ms = TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS);
timings.add([ms, task.path])
task.project.logger.warn "${task.path} took ${ms}ms"
}
@Override
void buildFinished(BuildResult result) {
println "Task timings:"
for (timing in timings) {
if (timing[0] >= 50) {
printf "%7sms %s\n", timing
}
}
}
@Override
void buildStarted(Gradle gradle) {}
@Override
void projectsEvaluated(Gradle gradle) {}
@Override
void projectsLoaded(Gradle gradle) {}
@Override
void settingsEvaluated(Settings settings) {}
}
gradle.addListener new TimingsListener()
这通常可以揭示哪个步骤是最慢的,当与其他答案结合使用时,可以有针对性地减少您的检查时间。
这是一个非常高水平的问题,所以我只是删除一些要点作为答案,因为有很多事情可以有助于长时间的 CI 检查运行。一旦你让你的问题更加确定,我会编辑这个。
我突然想到以下是发生这种情况的一些常见原因: