通过 Groovy 脚本创建 Jenkins 管道
Create Jenkins pipeline via Groovy script
我有以下 groovy 脚本来配置我新安装的 Jenkins 实例:
#!groovy
import hudson.security.*
import jenkins.model.*
import hudson.util.*;
import jenkins.install.*;
import jenkins.model.Jenkins
import jenkins.model.JenkinsLocationConfiguration
// parameters
def jenkinsParameters = [
email: '{{ jenkins_username_name }} <{{ jenkins_username_email }}>',
url: '{{ jenkins_tls_url }}'
]
// get Jenkins location configuration
def jenkinsLocationConfiguration = JenkinsLocationConfiguration.get()
// set Jenkins URL
jenkinsLocationConfiguration.setUrl(jenkinsParameters.url)
// set Jenkins admin email address
jenkinsLocationConfiguration.setAdminAddress(jenkinsParameters.email)
def instance = Jenkins.getInstance()
def hudsonRealm = new HudsonPrivateSecurityRealm(false)
hudsonRealm.createAccount('{{ jenkins_admin_username }}', '{{ jenkins_admin_password }}')
instance.setSecurityRealm(hudsonRealm)
instance.setInstallState(InstallState.INITIAL_SETUP_COMPLETED)
jenkinsLocationConfiguration.save()
instance.save()
我也想通过 groovy 脚本使用下面的 Jenkinsfile 创建一个管道:
pipeline {
agent any
stages {
stage('Buzz Buzz') {
steps {
echo 'Bees Buzz!'
}
}
stage('Bees Bees Bees') {
steps {
echo 'Buzz, Bees, Buzz!'
echo 'Bees Buzzing!'
}
}
}
}
如何通过 Groovy 脚本创建此管道?
def jobDSL="""
pipeline {
agent any
stages {
stage('Buzz Buzz') {
steps {
echo 'Bees Buzz!'
}
}
stage('Bees Bees Bees') {
steps {
echo 'Buzz, Bees, Buzz!'
echo 'Bees Buzzing!'
}
}
}
}
""";
def flowDefinition = new org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition(jobDSL, true);
def parent = Jenkins.instance;
def job = new org.jenkinsci.plugins.workflow.job.WorkflowJob(parent, "testJob")
job.definition = flowDefinition
Jenkins.instance.reload()
我有以下 groovy 脚本来配置我新安装的 Jenkins 实例:
#!groovy
import hudson.security.*
import jenkins.model.*
import hudson.util.*;
import jenkins.install.*;
import jenkins.model.Jenkins
import jenkins.model.JenkinsLocationConfiguration
// parameters
def jenkinsParameters = [
email: '{{ jenkins_username_name }} <{{ jenkins_username_email }}>',
url: '{{ jenkins_tls_url }}'
]
// get Jenkins location configuration
def jenkinsLocationConfiguration = JenkinsLocationConfiguration.get()
// set Jenkins URL
jenkinsLocationConfiguration.setUrl(jenkinsParameters.url)
// set Jenkins admin email address
jenkinsLocationConfiguration.setAdminAddress(jenkinsParameters.email)
def instance = Jenkins.getInstance()
def hudsonRealm = new HudsonPrivateSecurityRealm(false)
hudsonRealm.createAccount('{{ jenkins_admin_username }}', '{{ jenkins_admin_password }}')
instance.setSecurityRealm(hudsonRealm)
instance.setInstallState(InstallState.INITIAL_SETUP_COMPLETED)
jenkinsLocationConfiguration.save()
instance.save()
我也想通过 groovy 脚本使用下面的 Jenkinsfile 创建一个管道:
pipeline {
agent any
stages {
stage('Buzz Buzz') {
steps {
echo 'Bees Buzz!'
}
}
stage('Bees Bees Bees') {
steps {
echo 'Buzz, Bees, Buzz!'
echo 'Bees Buzzing!'
}
}
}
}
如何通过 Groovy 脚本创建此管道?
def jobDSL="""
pipeline {
agent any
stages {
stage('Buzz Buzz') {
steps {
echo 'Bees Buzz!'
}
}
stage('Bees Bees Bees') {
steps {
echo 'Buzz, Bees, Buzz!'
echo 'Bees Buzzing!'
}
}
}
}
""";
def flowDefinition = new org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition(jobDSL, true);
def parent = Jenkins.instance;
def job = new org.jenkinsci.plugins.workflow.job.WorkflowJob(parent, "testJob")
job.definition = flowDefinition
Jenkins.instance.reload()