首页 > 解决方案 > Jenkins 共享库无法引用

问题描述

我没有在我的 repo 的 src 中引用第二个 groovy 文件。

我的设置是这样的: 库名称 pipeline-library-demo github
我在 src 文件夹中添加了第二个 groovy 文件

app_config.groovy

#!/usr/bin/groovy

def bob(opt) {
 sh "docker run --rm " +
                '--env APP_PATH="`pwd`" ' +
                '--env RELEASE=${RELEASE} ' +
                "-v \"`pwd`:`pwd`\" " +
                "-v /var/run/docker.sock:/var/run/docker.sock " +
   "docker_repo/bob:1.4.0-8" ${opt}
}

def test(name) {
  echo "Hello ${name}"
}

我正在使用的 Jenkins 文件是:

pipeline {
    Library('pipeline-library-demo') _

    agent {
        node {
            label params.SLAVE
            config = new app_config()
        }
    }

    parameters {
        string(name: 'SLAVE', defaultValue: 'so_slave')
    }

    stages {
        stage('Demo') {
            steps {

                echo 'Hello World'

                sayHello 'Dave'
            }
        }
        stage('bob') {
            steps {
                config.test 'bob'
                config.bob '--help'
            }
        }
    }
}

我想我没有正确引用 app_config.groovy 并且没有找到

标签: jenkinsgroovyshared-librariesjenkins-pipeline

解决方案


库调用应该在 jenkins 文件的开头,请按照下面

  1. 如果您在 jenkins 配置中添加了库配置,则调用应如下所示:-

@Library('管道库演示')_

  1. 如果你想动态调用库,你应该调用如下: -

库标识符:'custom-lib@master',检索器:modernSCM([$class:'GitSCMSource',远程:'git@git.mycorp.com:my-jenkins-utils.git',credentialsId:'my-private-钥匙'])

请参考此链接

请在您的 app_config.groovy 中定义包。(例如包 com.cleverbuilder)


推荐阅读