【发布时间】: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 只是失败而没有抛出任何错误。
我认为但不知道如何实施的解决方案:
- 在我的作业应该运行的节点中检查管道库
- 忽略管道库并在同一 repo 中创建一个 groovy 文件并将其导入 JenkinsFile 中
【问题讨论】:
-
共享库将根据您的使用情况检出到您的工作区。如果您的工作区位于工作节点上,那么它将存在于那里。
-
我从 JenkinsFile 管理我的节点。结帐发生在它到达管道中的
agent { label '!master' }之前。
标签: jenkins groovy jenkins-pipeline jenkins-groovy