By default Jenkins doesn’t allow HTML
markup in descriptions.
This is the first thing we have to change to go for nice descriptions.
Enable HTML
for View and Job descriptions
import hudson.markup.RawHtmlMarkupFormatter
Jenkins.instance.setMarkupFormatter(new RawHtmlMarkupFormatter(false))
Let’s start with the main page of our Jenkins instance: Add a description to the All
view:
import org.kohsuke.stapler.StaplerRequest
import org.kohsuke.stapler.StaplerResponse
Jenkins.get().getView('All').doSubmitDescription([ getParameter: { return """
<h3>Welcome to datenkollektiv Jenkins</h3>
This Jenkins builds all required components to power <a href="https://planets.datenkollektiv.de/">Planets</a>
"""; }] as StaplerRequest, [ sendRedirect: { return; } ] as StaplerResponse)
This one was easy: How to set a Views description in Groovy
We create our other views with listView()…
// create views
listView('Planets') {
description("""
<h3>Planets builds</h3>
<h3>Homepage</h3>
Plain Java builds are running inside the main Jenkins container.
<h3>Android</h3>
Android artefacts are built inside a Docker container with the required Android SDK.
<h3>Overview</h3>
<ul>
<li><a href="https://planets.datenkollektiv.de">Planets Homepage</a></li>
<li><a href="https://devops.datenkollektiv.de/pages/planets.html">Datenkollektiv Blog / Planets</a></li>
</ul>
""")
jobs {
names('Planets homepage', 'Planets Spaceship')
}
columns {
status()
weather()
name()
lastSuccess()
lastFailure()
lastDuration()
buildButton()
}
}
Next step is to add informative description to the build Jobs themselves:
pipelineJob("Planets homepage") {
description("""
<h3>Planets homepage: <a href="https://planets.datenkollektiv.de">https://planets.datenkollektiv.de</a></h3>
This build job automagically recreates the Docker container powering the Planets homepage.
""")
…
}
Nice description is technically not required, but I think adding such descriptions is a great improvement of our Jenkins setup.
If you got so far you might also like our other Jenkins related posts:
▷ Programmatically add Environment Variables to a Jenkins Instance
▷ How to Checkout a Gerrit Change in a Jenkins Sandbox Pipeline