jenkins - 在 jenkins 声明性管道文件中重用 groovy 脚本

标签 jenkins jenkins-pipeline

有没有办法重用在 Jenkinsfile.js 中加载一次的 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 .

最佳答案

是的,您只需要加载脚本一次。

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 ”来调用不同的函数。

关于jenkins - 在 jenkins 声明性管道文件中重用 groovy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55486023/

相关文章:

groovy - Jenkins cps groovy 未捕获 NoSuchMethodError 异常

amazon-web-services - 在Jenkins中的Docker容器中运行命令

node.js - 在 Linux Jenkins CI 上使用 Windows 中的 node_modules...好还是坏?

http - 将文本添加到 Jenkins 远程 API 触发的构建页面

jenkins - $ 凭证绑定(bind) + sh 逃避声明性管道的疯狂

jenkins - jenkins中自由式项目和管道之间的区别

java - Jenkins 无法启动

git - Jenkins 无需 git 更改即可触发作业

shell - 如何在 shell 脚本中使用 Jenkins 参数

jenkins - 无法访问 Jenkins 管道中的 $BUILD_LOG