![](/img/trans.png)
[英]create a new Jenkins job by using Process DSL plugin groovy script
[英]Create new Jenkins jobs using Pipeline Job and Groovy script
我有带有参数(名称,组,任务号)的詹金斯管道作业
我需要编写将调用groovy脚本的管道脚本(这个吗?: https : //github.com/peterjenkins1/jenkins-scripts/blob/master/add-job.groovy )
我每次构建主管道作业时都想创建一个新作业(名称为name_group_taskNamber)。
我不明白:我需要在哪里放一些时髦的脚本? 管道脚本应如何显示? :
node{
stage('Build'){
def pipeline = load "CreateJob.groovy"
pipeline.run()
}
}
我们通过使用https://wiki.jenkins.io/display/JENKINS/Jobcopy+Builder+plugin来做到这一点,尝试在管道脚本中构建另一步骤并传递要考虑的参数
您可以在此处使用和配置共享库 (一个git repo): https : //github.com/lvthillo/shared-library 。 您需要在Jenkins全局配置中进行配置。
它包含一个文件夹vars/
。 在这里,您可以管理管道和groovy脚本,例如我的slackNotifier.groovy
。 该脚本只是一个用于在Slack中打印生成结果的常规脚本。
在jenkins管道作业中,我们将导入共享库:
@Library('name-of-shared-pipeline-library')_
mavenPipeline {
//define parameters
}
在上述情况下,管道也位于共享库中,但这不是必需的。
您可以只在作业本身中编写管道,然后仅从管道中调用函数,如下所示:这是共享库中的脚本:
// vars/sayHello.groovy
def call(String name = 'human') {
echo "Hello, ${name}."
}
并在您的管道中:
final Lib= library('my-shared-library')
...
stage('stage name'){
echo "output"
Lib.sayHello.groovy('Peter')
}
...
编辑:在新的声明性管道中,您可以使用:
pipeline {
agent { node { label 'xxx' } }
options {
buildDiscarder(logRotator(numToKeepStr: '3', artifactNumToKeepStr: '1'))
}
stages {
stage('test') {
steps {
sh 'echo "execute say hello script:"'
sayHello("Peter")
}
}
}
post {
always {
cleanWs()
}
}
}
def sayHello(String name = 'human') {
echo "Hello, ${name}."
}
输出:
[test] Running shell script
+ echo 'execute say hello script:'
execute say hello script:
[Pipeline] echo
Hello, Peter.
[Pipeline] }
[Pipeline] // stage
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.