【问题标题】:How to checkout shared library pipeline other then master如何签出除 master 之外的共享库管道
【发布时间】:2019-12-05 20:12:23
【问题描述】:

我的 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 文件保存在同一个 repo 中并将库导入 JenkinsFile 但似乎它也不适合我。我试过this,但詹金斯无法识别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'),但它不起作用。 Jenkins 只是失败而没有抛出任何错误。

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

  1. 在我的作业应该运行的节点中检查管道库
  2. 忽略管道库并在同一 repo 中创建一个 groovy 文件并将其导入 JenkinsFile 中

【问题讨论】:

  • 共享库将根据您的使用情况检出到您的工作区。如果您的工作区位于工作节点上,那么它将存在于那里。
  • 我从 JenkinsFile 管理我的节点。结帐发生在它到达管道中的agent { label '!master' } 之前。

标签: jenkins groovy jenkins-pipeline jenkins-groovy


【解决方案1】:

您可以尝试先获取一个工人,然后从内部加载库:

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

【讨论】:

  • 现在,我可以看到在工作节点中已经完成了结帐。谢谢,但我仍然遇到同样的错误 - Caused by: java.io.IOException: Cannot run program "git" (in directory "/var/lib/jenkins/workspace/rp-pipe_PR-675@libs/slackNotify"): error=2, No such file or directory。我检查了which git,我在PATH 中有git。我不知道为什么它仍然抱怨
  • 我注意到 Jenkins 尝试在 var/lib/ 中签出库 repo,当然它没有这样做的权限。为什么它不像其他 repo 一样尝试克隆 /home/ec2-user/workspace 中的 repo?
  • 我认为这是运行 Jenkins 的工作区。
  • 接受答案,因为它确实解决了我最初的问题,即签出到工作节点。
  • 是的,/var/lib/ 是安装位置,但工作空间是 /home/ec2-user/workspace,并且希望 git checkout 在这里完成,而共享库 git checkout 在此目录中完成。
猜你喜欢
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2012-10-15
  • 1970-01-01
相关资源
最近更新 更多