2. Job DSL Examples
2.1. About Job DSL Syntax
job
- only required expression
job('my-job-name')
2.2. Job
job(String name, Closure closure = null)
freeStyleJob(String name, Closure closure = null)
buildFlowJob(String name, Closure closure = null)
ivyJob(String name, Closure closure = null)
matrixJob(String name, Closure closure = null)
mavenJob(String name, Closure closure = null)
multiJob(String name, Closure closure = null)
workflowJob(String name, Closure closure = null)
multibranchWorkflowJob(String name, Closure closure = null)
def myJob = freeStyleJob('SimpleJob')
myJob.with {
description 'A Simple Job'
}
2.3. View
listView(String name, Closure closure = null)
sectionedView(String name, Closure closure = null)
nestedView(String name, Closure closure = null)
deliveryPipelineView(String name, Closure closure = null)
buildPipelineView(String name, Closure closure = null)
buildMonitorView(String name, Closure closure = null)
categorizedJobsView(String name, Closure closure = null)
2.4. Folder
folder(String name, Closure closure = null)
folder('project-a')
freeStyleJob('project-a/compile')
listView('project-a/pipeline')
folder('project-a/testing')
2.5. Config
configFiles(Closure configFilesClosure = null)
2.6. Queue
queue(String jobName)
queue(Job job)
2.7. Reading from workspace
InputStream streamFileFromWorkspace(String filePath)
String readFileFromWorkspace(String filePath)
String readFileFromWorkspace(String jobName, String filePath)
job('my-build') {
steps {
shell(readFileFromWorkspace('build.sh'))
}
}
job('my-tests') {
description(readFileFromWorkspace('acme-tests', 'README.txt'))
}
2.8. Logging
out.println('Hello from a Job DSL script!')
println('Hello from a Job DSL script!')
import java.util.logging.Logger
Logger logger = Logger.getLogger('org.example.jobdsl')
logger.info('Hello from a Job DSL script!')
2.9. Configure
job('my-job') { ... configure { project -> project / buildWrappers / EnvInjectPasswordWrapper { injectGlobalPasswords(true) } } }
2.10. Examples
2.10.1. Example 1
job('my-job') {
scm {
git('https://github.com/AstroTech/ecosystem-example-java.git')
}
triggers {
scm('H/15 * * * *')
}
steps {
maven('-e clean test')
}
}
2.10.2. Example 2
def project = 'AstroTech/ecosystem-example-java'
def branchApi = new URL("https://api.github.com/repos/${project}/branches")
def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
branches.each {
def branchName = it.name
def jobName = "${project}-${branchName}".replaceAll('/','-')
job(jobName) {
scm {
git("git://github.com/${project}.git", branchName)
}
steps {
maven("test -Dproject.name=${project}/${branchName}")
}
}
}
2.10.3. Example 3
def giturl = 'https://github.com/AstroTech/ecosystem-example-java.git'
for(i in 0..10) {
job("my-job-${i}") {
scm {
git(giturl)
}
steps {
maven("test -Dtest.suite=${i}")
}
}
}
2.11. Further Reading
2.12. Assignments
2.12.1. Jenkinsfile and Pipeline DSL
Przepisz całą konfigurację wykorzystując Pipeline DSL zapisany w Jenkinsfile