一尘不染

如何检出共享库管道而不是主库

jenkins

我的Jenkins主管没有执行者 ,而且由于我们公司中Jenkins的设计而没有 执行者
。我们有2个工作节点。当我添加Pipeline共享库时,默认情况下,Jenkins尝试在master中检出并由于明显原因而失败,因为它找不到,git因为在Jenkins
master中不可用。

Cloning repository git@github.com:Test/jenkins-pipeline-shared.git


> git init /var/lib/jenkins/workspace/rp-pipe_PR-675@libs/slackNotify # timeout=10
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not init /var/lib/jenkins/workspace/rp-pipe_PR-675@libs/slackNotify

我不明白为什么Jenkins甚至可以尝试检出master中的共享库,因为master甚至没有执行者。

我查看了其他人的意见,但我的事情止于尝试结帐的地步。我该如何克服?我以为将共享库的Groovy文件保存在同一回购中,并将该库导入JenkinsFile,但似乎对我也不起作用。我尝试了这个,但詹金斯无法识别modules

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 14: Expected a step @ line 14, column 17.
modules.sendNotifications = load "vars/sendNotifications.groovy"

我试过了,libraryResource ('vars/sendNotifications.groovy')但是没有用。詹金斯只是失败而没有抛出任何错误。

我认为但不知道如何实现的解决方案

  1. 假定要运行我的作业的节点中的Checkout管道库
  2. 忽略管道库,并在同一回购中创建一个Groovy文件,并将其导入JenkinsFile中

阅读 250

收藏
2020-07-25

共1个答案

一尘不染

您可以先尝试获取一个工作程序,然后再从内部加载该库:

pipeline {
  agent any
  stages {
    stage('Init') {
      steps {
        library 'my-fancy-library'
      }
    }
  }
}
2020-07-25