是否有一种方法可以重用一次在Jenkinsfile中加载的Groovy脚本。
现在这就是我正在做的
steps {
script {
def util = load("${env.WORKSPACE}/scripts/build_util.groovy")
util.runStep1()
}
}
steps {
script {
def util = load("${env.WORKSPACE}/scripts/build_util.groovy")
util.runStep2()
}
}
steps {
script {
def util = load("${env.WORKSPACE}/scripts/build_util.groovy")
util.runStep3()
}
}
我在后期制作中再次执行相同的操作,其中包含多个脚本块步骤来发送邮件。
有更好的方法吗?我不能使用shared libraries。
答案 0 :(得分:1)
是的,您只需要加载一次脚本。
def util = load("${env.WORKSPACE}/scripts/build_util.groovy")
您可以创建一个阶段,然后在其中加载脚本并存储在变量中,然后执行以下操作:-
stage('Environment') {
agent { node { label 'master' } }
steps {
script {
def util = load("${env.WORKSPACE}/scripts/build_util.groovy")
}
}
}
post {
// Things that we want done regardless of pipeline's outcome
//
always {
// Push the overall statistics from all the stages to InfluxDB
//
node (LINUX_BUILD_NODE){
script{
//Mail sending function call
//
util.runStep1()
util.runStep2()
util.runStep3()
}
}
}
}
您可以在任何阶段使用“ util ”来调用不同的功能。
答案 1 :(得分:0)
您可以在顶级声明变量util
,然后在第一个阶段为它分配值,然后在任何阶段都可以使用它。
def util;
pipeline {
agent any
stages {
stage('one') {
steps {
script {
util = load("${env.WORKSPACE}/scripts/build_util.groovy")
util.runStep1()
}
}
}
post {
util.xxxx
}
stage('two') {
steps {
script {
util = load("${env.WORKSPACE}/scripts/build_util.groovy")
util.runStep2()
}
}
}
post {
util.xxxx
}
}
post {
util.xxxx
}
}