Skip to content

Commit 4060f83

Browse files
Add a link checker to docs build
Closes gh-9818
1 parent f9a7ae0 commit 4060f83

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

buildSrc/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ dependencies {
8080
implementation 'io.spring.gradle:propdeps-plugin:0.0.10.RELEASE'
8181
implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15'
8282
implementation 'io.spring.nohttp:nohttp-gradle:0.0.8'
83+
implementation 'org.aim42:htmlSanityCheck:1.1.6'
8384
implementation 'org.asciidoctor:asciidoctor-gradle-jvm:3.1.0'
8485
implementation 'org.asciidoctor:asciidoctor-gradle-jvm-pdf:3.1.0'
8586
implementation 'org.hidetake:gradle-ssh-plugin:2.10.1'

buildSrc/src/main/groovy/io/spring/gradle/convention/DocsPlugin.groovy

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package io.spring.gradle.convention
22

3+
import org.aim42.htmlsanitycheck.HtmlSanityCheckPlugin
4+
import org.aim42.htmlsanitycheck.HtmlSanityCheckTask
5+
import org.aim42.htmlsanitycheck.check.BrokenHttpLinksChecker
36
import org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask
4-
import org.gradle.api.Action
57
import org.gradle.api.Plugin
68
import org.gradle.api.Project
79
import org.gradle.api.Task
8-
import org.gradle.api.artifacts.Configuration
9-
import org.gradle.api.artifacts.DependencySet
1010
import org.gradle.api.plugins.PluginManager
11-
import org.gradle.api.tasks.Sync
1211
import org.gradle.api.tasks.bundling.Zip
1312

1413
/**
@@ -25,6 +24,7 @@ public class DocsPlugin implements Plugin<Project> {
2524
pluginManager.apply(AsciidoctorConventionPlugin);
2625
pluginManager.apply(DeployDocsPlugin);
2726
pluginManager.apply(JavadocApiPlugin);
27+
pluginManager.apply(HtmlSanityCheckPlugin)
2828

2929
String projectName = Utils.getProjectName(project);
3030
String pdfFilename = projectName + "-reference.pdf";
@@ -38,6 +38,17 @@ public class DocsPlugin implements Plugin<Project> {
3838
}
3939
}
4040

41+
project.tasks.withType(HtmlSanityCheckTask) { HtmlSanityCheckTask t ->
42+
project.configure(t) {
43+
t.dependsOn 'asciidoctor'
44+
t.checkerClasses = [BrokenHttpLinksChecker]
45+
t.checkingResultsDir = new File(project.getBuildDir(), "/report/htmlchecks")
46+
t.failOnErrors = false
47+
t.httpConnectionTimeout = 3000
48+
t.sourceDir = new File(project.getBuildDir(), "/docs/asciidoc/")
49+
t.sourceDocuments = project.files(new File(project.getBuildDir(), "/docs/asciidoc/index.html"))
50+
}
51+
}
4152

4253
Task docsZip = project.tasks.create('docsZip', Zip) {
4354
dependsOn 'api', 'asciidoctor'

0 commit comments

Comments
 (0)