jenkins - 通过 Groovy 脚本创建 Jenkins 管道
问题描述
我有以下配置我新安装的 Jenkins 实例的 groovy 脚本:
#!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()
推荐阅读
- machine-learning - 文本分类的数据增强
- java - 用于 REST 注释接口的 Spring Web 客户端代理
- tfs - TFSMigrator 错误:此工具尚不支持非交互式登录
- git - Git合并后保持新的变化
- linux - 如何从来源其他 Bash 脚本的任何目录 Bash 脚本执行(不使用路径变量)
- r - 如何避免由于 R 中的条带而导致重复文本?
- ios - 具有不同数组的多个表视图
- javascript - 从 Javascript 函数返回值设置 HTML 文本框值 - (Javascript)
- python - 在字典列表中查找常用字典值 - python
- javascript - 新音频会预加载声音文件吗?