Jenkins
Jenkins scripted pipeline Snippet Generator
https://jenkins.blaataap.com/job/Pipeline/pipeline-syntax/
Jenkins Job DSL API
https://jenkinsci.github.io/job-dsl-plugin/#
JSON API Calls
# Print name of all known jobs
GET /api/json?tree=jobs[name]&pretty=true
# Enable a job
POST /job/enable
# Run job without parameters
POST /<name>/build
# Run job with parameters
POST /<name>/buildWithParameters?<params>
List all job paths
Jenkins.instance.getAllItems(AbstractItem.class).each {
println(it.fullName)
};
Cancel all jobs
import hudson.model.*
def q = Jenkins.instance.queue
q.items.each { q.cancel(it.task) }
Dump Plugin Versions
Jenkins.instance.pluginManager.plugins.each{
plugin ->
println("${plugin.getShortName()}:${plugin.getVersion()}")
}
Tracking builds
Jenkins 1.x
First get the queue number return by the POST that started the call
Wait some seconds! Yes, honestly!
Fetch the build id using
GET /<job name>/lastBuild/buildNumber
Once you have the build id poll the status with
GET /<job name>/<buildNumber>/api/json