如何用Jenkins本身测试Jenkins共享库?

问题描述 投票:0回答:1

我有一个带有 groovy 文件

vars/basicPipeline.groovy
的存储库,其中包含单个函数
call
。该存储库用作 Jenkins 的共享库。

提到的文件看起来像这样:

def call(Map config, Closure body) {
    node(config.nodeLabel) {
        body()
    }
} 

然后像这样使用这个库:

basicPipeline nodeLabel: 'node' {
  echo 'Hello, World!'
}

我想通过运行一些演示管道来使用 Jenkins 本身测试对该库的更改,以显示所提供的

basicPipeline
正在工作。

但是我很难创建管道,它将使用自己版本的库而不是 Jenkins 中配置的 master

我已经尝试过:

  • @Library("myrepo@${BRANCH_NAME}") _
    但它不适用于变量。
  • library "my-shared-library@$BRANCH_NAME"
    Only using first definition of library
    ,并使用 master
  • 简单调用
    basicPipeline.call
    仍然会调用从master加载的库版本。

如何使我的管道使用文件的本地版本,或从同一分支加载版本?

jenkins groovy jenkins-groovy
1个回答
0
投票
      library "your-library-name@${branch}"

这应该有效 如果您在 jenkins 配置中禁用库的全局注入(隐式加载) 如果管道开头没有

@Library("myrepo@${BRANCH_NAME}") _

Jenkins文件完整内容

library "your-library-name@${env.BRANCH_NAME}"
basicPipeline nodeLabel: 'node' {
  echo 'Hello, World!'
}

库应该添加到全局库中

  • 允许覆盖默认版本
© www.soinside.com 2019 - 2024. All rights reserved.