Skip to content

Commit ff55739

Browse files
authored
Merge pull request #835 from jenkinsci/welandaz/debug-logging
Add tracing messages for build scan parsing
2 parents 5ce09ee + 3ea90e5 commit ff55739

6 files changed

Lines changed: 28 additions & 3 deletions

File tree

plugin/src/main/java/hudson/plugins/gradle/AbstractGradleLogProcessor.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@
66
import java.io.OutputStream;
77
import java.nio.ByteBuffer;
88
import java.nio.charset.Charset;
9+
import java.util.logging.Level;
10+
import java.util.logging.Logger;
911

1012
public abstract class AbstractGradleLogProcessor extends LineTransformationOutputStream {
1113

14+
private static final Logger LOGGER = Logger.getLogger(AbstractGradleLogProcessor.class.getName());
15+
1216
// Don't parse too long lines
1317
private static final int DEFAULT_MAX_LINE_LENGTH = 500;
1418

@@ -31,6 +35,8 @@ protected final void eol(byte[] bytes, int length) throws IOException {
3135
if (length < maxLineLength) {
3236
String line = charset.decode(ByteBuffer.wrap(bytes, 0, length)).toString();
3337
processLogLine(line);
38+
} else {
39+
LOGGER.fine(() -> "Skipping log line of length " + length + " (max: " + maxLineLength + ")");
3440
}
3541

3642
out.write(bytes, 0, length);

plugin/src/main/java/hudson/plugins/gradle/BuildScanLogScanner.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package hudson.plugins.gradle;
22

33
import java.util.function.Consumer;
4+
import java.util.logging.Level;
5+
import java.util.logging.Logger;
46
import java.util.regex.Matcher;
57
import java.util.regex.Pattern;
68

79
public class BuildScanLogScanner {
810

11+
private static final Logger LOGGER = Logger.getLogger(BuildScanLogScanner.class.getName());
12+
913
private static final Pattern BUILD_SCAN_PATTERN = Pattern.compile("Publishing (Build Scan|build scan|build information)(?: to Develocity)?\\.\\.\\.");
1014
private static final Pattern URL_PATTERN = Pattern.compile(".*(?:\\[INFO] )?(https?://.*/s/.*)");
1115
private static final int LINES_TO_SCAN = 1000;
@@ -19,14 +23,19 @@ public BuildScanLogScanner(BuildScanPublishedListener listener) {
1923
}
2024

2125
public void scanLine(String line) {
22-
if (linesSinceBuildScanPublishingMessage < LINES_TO_SCAN) {
26+
LOGGER.log(Level.FINE, "Scanning line: {0}", line);
27+
28+
if (linesSinceBuildScanPublishingMessage < LINES_TO_SCAN) {
2329
linesSinceBuildScanPublishingMessage++;
30+
LOGGER.log(Level.FINE, "Within scan window, lines since publishing message: {0}", linesSinceBuildScanPublishingMessage);
2431
tryFindBuildScanUrl(line, url -> {
32+
LOGGER.log(Level.FINE, "Found build scan URL: {0}", url);
2533
linesSinceBuildScanPublishingMessage = Integer.MAX_VALUE;
2634
listener.onBuildScanPublished(url);
2735
});
2836
}
2937
if (BUILD_SCAN_PATTERN.matcher(line).find()) {
38+
LOGGER.log(Level.FINE, "Detected build scan publishing message: {0}", line);
3039
linesSinceBuildScanPublishingMessage = 0;
3140
}
3241

plugin/src/main/java/hudson/plugins/gradle/GradleTaskListenerDecorator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import javax.annotation.Nonnull;
66
import java.io.OutputStream;
77
import java.nio.charset.StandardCharsets;
8-
import java.util.Collection;
98
import java.util.List;
109

1110
public class GradleTaskListenerDecorator extends TaskListenerDecorator implements BuildScansAware {

plugin/src/main/java/hudson/plugins/gradle/SimpleBuildScanPublishedListener.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@
55
import java.io.Serializable;
66
import java.util.ArrayList;
77
import java.util.List;
8+
import java.util.logging.Logger;
89

910
public final class SimpleBuildScanPublishedListener
1011
implements BuildScanPublishedListener, BuildScansAware, Serializable {
1112

13+
private static final Logger LOGGER = Logger.getLogger(SimpleBuildScanPublishedListener.class.getName());
14+
1215
private final List<String> buildScans = new ArrayList<>();
1316

1417
@Override
1518
public void onBuildScanPublished(String scanUrl) {
19+
LOGGER.fine(() -> "Build scan has been published: " + scanUrl);
1620
buildScans.add(scanUrl);
1721
}
1822

plugin/src/main/java/hudson/plugins/gradle/WithGradleExecution.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,20 @@
1414
import java.io.UncheckedIOException;
1515
import java.util.Collections;
1616
import java.util.List;
17+
import java.util.logging.Logger;
1718

1819
public class WithGradleExecution extends StepExecution {
1920

21+
private static final Logger LOGGER = Logger.getLogger(WithGradleExecution.class.getName());
22+
2023
WithGradleExecution(StepContext context) {
2124
super(context);
2225
}
2326

2427
@Override
2528
public boolean start() throws IOException, InterruptedException {
29+
LOGGER.fine("Starting withGradle execution");
30+
2631
GradleTaskListenerDecorator gradleTaskListenerDecorator = new GradleTaskListenerDecorator();
2732

2833
getContext()
@@ -59,9 +64,12 @@ private List<String> extractBuildScans(StepContext context) {
5964
try {
6065
List<String> buildScans = this.buildScans.getBuildScans();
6166
if (buildScans.isEmpty()) {
67+
LOGGER.fine("No build scans found");
6268
return Collections.emptyList();
6369
}
6470

71+
LOGGER.fine(() -> "Found " + buildScans.size() + " build scan(s) in " + buildScans);
72+
6573
FlowNode flowNode = context.get(FlowNode.class);
6674
flowNode.getParents().stream().findFirst().ifPresent(parent -> {
6775
BuildScanFlowAction nodeBuildScanAction = new BuildScanFlowAction(parent);

plugin/src/main/java/hudson/plugins/gradle/injection/MavenBuildScanInjection.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import hudson.model.Node;
55
import jenkins.model.Jenkins;
66

7-
import java.io.File;
87
import java.io.IOException;
98
import java.util.ArrayList;
109
import java.util.Arrays;

0 commit comments

Comments
 (0)