67 }
68
69 @Override
70 public void run(Path scratchPath) {
71 // Is the check already up to date?
72 var checks = pr.checks(pr.headHash());
73 if (checks.containsKey(executor.checkName())) {
74 var check = checks.get(executor.checkName());
75 if (check.startedAt().isBefore(ZonedDateTime.now().minus(executor.timeout())) && check.status() == CheckStatus.IN_PROGRESS) {
76 log.info("Check for hash " + pr.headHash() + " is too old - running again");
77 } else {
78 log.fine("Hash " + pr.headHash() + " already has a check - skipping");
79 return;
80 }
81 }
82
83 var prFolder = scratchPath.resolve("submit").resolve(pr.repository().name());
84
85 // Materialize the PR's target ref
86 try {
87 var localRepo = Repository.materialize(prFolder, pr.repository().url(), pr.targetRef());
88 var headHash = localRepo.fetch(pr.repository().url(), pr.headHash().hex());
89
90 var checkBuilder = CheckBuilder.create(executor.checkName(), headHash);
91 pr.createCheck(checkBuilder.build());
92
93 var checkUpdater = new CheckUpdater(pr, checkBuilder);
94 executor.run(prFolder, checkBuilder, checkUpdater);
95 pr.updateCheck(checkBuilder.build());
96 } catch (IOException e) {
97 throw new UncheckedIOException(e);
98 }
99 }
100 }
|
67 }
68
69 @Override
70 public void run(Path scratchPath) {
71 // Is the check already up to date?
72 var checks = pr.checks(pr.headHash());
73 if (checks.containsKey(executor.checkName())) {
74 var check = checks.get(executor.checkName());
75 if (check.startedAt().isBefore(ZonedDateTime.now().minus(executor.timeout())) && check.status() == CheckStatus.IN_PROGRESS) {
76 log.info("Check for hash " + pr.headHash() + " is too old - running again");
77 } else {
78 log.fine("Hash " + pr.headHash() + " already has a check - skipping");
79 return;
80 }
81 }
82
83 var prFolder = scratchPath.resolve("submit").resolve(pr.repository().name());
84
85 // Materialize the PR's target ref
86 try {
87 var localRepo = Repository.materialize(prFolder, pr.repository().url(),
88 "+" + pr.targetRef() + ":submit_" + pr.repository().name());
89 var headHash = localRepo.fetch(pr.repository().url(), pr.headHash().hex());
90
91 var checkBuilder = CheckBuilder.create(executor.checkName(), headHash);
92 pr.createCheck(checkBuilder.build());
93
94 var checkUpdater = new CheckUpdater(pr, checkBuilder);
95 executor.run(prFolder, checkBuilder, checkUpdater);
96 pr.updateCheck(checkBuilder.build());
97 } catch (IOException e) {
98 throw new UncheckedIOException(e);
99 }
100 }
101 }
|