当前位置: 首页 > 知识库问答 >
问题:

如何签出除主管道外的共享库管道

康泽宇
2023-03-14

我的詹金斯大师没有遗嘱执行人,因为我们公司有詹金斯的设计,所以不可能有遗嘱执行人。我们有两个工作节点。当我添加管道共享库时,默认情况下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

我不明白为什么詹金斯甚至可以尝试在大师中检出共享库,因为大师甚至没有遗嘱执行人。

我看了别人的意见,但我的东西停在它试图检查的地方。我怎样才能克服这一切?我想把我的共享库groovy文件保存在同一个回购中,并将库导入JenkinsFile,但似乎它也不适合我。我试过了,但詹金斯无法识别<代码>模块

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. 在假定运行作业的节点中签出管道库
  2. 忽略管道库,在同一repo中创建一个groovy文件,并导入JenkinsFile中的文件

共有1个答案

章晋鹏
2023-03-14

您可以尝试先获取一个工作程序,然后从以下位置加载库:

pipeline {
  agent any
  stages {
    stage('Init') {
      steps {
        library 'my-fancy-library'
      }
    }
  }
}
 类似资料:
  • 问题内容: 我的Jenkins主管没有执行者 ,而且由于我们公司中Jenkins的设计而没有 执行者 。我们有2个工作节点。当我添加Pipeline共享库时,默认情况下,Jenkins尝试在master中检出并由于明显原因而失败,因为它找不到,因为在Jenkins master中不可用。 我不明白为什么Jenkins甚至可以尝试检出master中的共享库,因为master甚至没有执行者。 我查看了

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

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

  • 只有在必要时,我才尝试在“httpRequestBegin”管道中执行一些操作。我的处理器在Sitecore解析用户后执行(processor type=“Sitecore.Pipelines.HttpRequest.UserResolver,Sitecore.Kernel”),因为如果Sitecore无法首先解析用户,我也在解析用户。 稍后,我想在管道“insertRenderings”中添加一

  • 我将我的Jenkins Pipeline存储为Jenkins共享库中的Groovy脚本。我想为不同的工作使用不同的版本。我的共享库脚本称为如下: 我已将sharedLib repo中的不同版本标记为。万一我想用v1。0,我用注释引用了它,如下所示。 在我的工作中,我通过调用groovy脚本访问了共享库,并使用了上面的注释,如图所示: 我运行这项工作时出错了。以下是我看到的错误。 当我使用。我哪里出

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