当前位置: 首页 > 面试题库 >

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

穆锋
2023-03-14
问题内容

我的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中

问题答案:

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

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


 类似资料:
  • 我的詹金斯大师没有遗嘱执行人,因为我们公司有詹金斯的设计,所以不可能有遗嘱执行人。我们有两个工作节点。当我添加管道共享库时,默认情况下Jenkins尝试在master中签出,但由于明显的原因失败,因为它找不到git,因为它在Jenkins master中不可用。 我不明白为什么詹金斯甚至可以尝试在大师中检出共享库,因为大师甚至没有遗嘱执行人。 我看了别人的意见,但我的东西停在它试图检查的地方。我怎

  • 由于我无法访问组织中的“管理Jenkins”菜单,我无法在“管理Jenkins”中的“全局管道库”中配置共享库。 没有在Manage Jenkins中进行配置,是否有其他方法实现此功能? (或) 是否可以通过管道脚本配置“全球管道库”部分,而不管访问权限如何? 如果可能,请您在答案中共享一些代码片段。

  • 我们试图切换到jenkins管道,但我在groovy/java的低水平阻止了我们建立一个共享库。 这里是我的共享库(位于bitbucket中git repo的{root}/src/com/pipeline.groovy中)我必须承认,我在这里做什么都不知道,因为我不知道包裹的定义 Jenkins的管道看起来 通过所有这些设置,我最终得到了错误: 我怀疑我的漂亮包裹的定义,但我坚持这样做。 非常欢迎

  • 问题内容: 这是Linux编程书的引文: 假设这两个和是available.Then链接器必须选择的图书馆之一,而不是other.The链接搜索每个目录(第那些指定的选项,然后将这些在标准目录)。当链接器找到了一个包含目录无论是或,链接器将停止搜索目录。如果目录中仅存在两个变体之一,则链接器将选择该变体。否则,除非另有明确指示,否则链接程序将选择共享库版本。您可以使用该选项来请求静态归档。例如,即

  • 我有一个Groovy库作为全局共享库提供: 以及使用此库的Jenkins脚本化管道作业: 当作业运行时,我从获得以下输出,然后是的错误: 我很清楚,一些Jenkins插件已经依赖于httpcomponents,以下情况似乎是正确的: 我的注释导致所请求的http客户端版本被下载(如中观察到的)。 但是,Groovy库没有加载或使用该版本,而是依赖于Jenkins插件的其他版本。 而且,更恼人的是,

  • 问题内容: 詹金斯版 2.89.4workflow -cps ver 2.42 当我尝试运行加载库的管道时,出现以下异常: 引用链接的Groovy类: 您可以像这样在管道或库中重现异常: 问题答案: 这是一个已知的詹金斯问题:JENKINS-45901 自2017年8月以来已开放。看起来很快不会修复: 不知道是否有详尽的文档记录了Groovy语言支持(或缺乏它),但是无论如何我都不会期望这个问题或