What Is Seed Job
We are using Jenkins to automate our day to day things but creating jobs in Jenkins manually is kind of a manual intervention so to automate jobs creation we use Seed Job. A seed Job is a combination of Jenkins modules and groovy code.
Note: To use seed job do install the plugin name Job DSL
Creating FreeStyle Job Using Seed Job
Here is a sample seed job creating a freestyle job.
job("test_freestyle_seed_job"){
steps {
shell('echo Hello World!')
}
}
or
freeStyleJob("test_freestyle_seed_job"){
steps {
shell('echo Hello World!')
}
}
Creating Pipeline Job Using Seed Job
Here is a sample seed job creating a pipeline job.
pipelineJob('test_pipeline_seed_job') {
definition {
cpsScm {
scm {
git {
remote {
github('lyfofvipin/jenkins_tutorials')
// url('https://github.com/lyfofvipin/jenkins_tutorials.git')
}
}
}
scriptPath('jobs/First_Jenkinsfile')
}
}
}
Creating Jobs Inside Folder
Here is a script creating both the jobs.
folder('test_folder') // This will create a folder first
job("test_folder/test_freestyle_job"){
steps {
shell('echo Hello World!')
}
}
pipelineJob('test_folder/test_pipeline_job') {
definition {
cpsScm {
scm {
git {
remote {
url('https://github.com/lyfofvipin/jenkins_tutorials.git')
}
branches("master")
}
}
scriptPath('jobs/First_Jenkinsfile')
}
}
}
If You Want To Use Script In Definition (Not Recommended)
pipelineJob('test_pipeline_job_with_script') {
definition {
cps{
script("""
pipeline{
agent 'any'
stages{
stage("Stage_Name"){
steps{
sh "echo Test Stage.; pwd; hostname"
}
}
}
post{
success{
cleanWs()
}
}
}
""")
}
}
}