在 Jenkins 作业中配置 SCM URL 而不是工作流脚本

Configure SCM URL in Jenkins job instead of Workflow script

我已经编写了一个构建我们项目的工作流脚本。在 node 块中,我从 git:

检查我们的来源
node('nodeA') {
  git url: 'https://github.com/foo/bar.git'
  ...
}

工作流脚本本身是源代码的一部分。现在,不同的开发人员对 git 存储库有不同的分支。因此 URL 是不同的,我想摆脱脚本中的硬编码 URL。

是否可以在 Jenkins 作业配置中指定 Git 存储库 URL?以及如何获得实际的 node 源代码?

使用 git SCM 来实现。

要在 jenkins 中使用 git scm,您应该安装 2 个插件。

Git and Git client

在安装 git 插件之前安装 git 客户端插件。

最简单的方法是使用 Workflow: Multibranch 插件(目前是 1.9-beta-1,在实验更新中心),在这种情况下 Git配置正在进行中,您的脚本只是运行

checkout scm

目前没有处理多个分支(或拉取请求)的分支源,但这是一个可能的集成。

另一种更手动的可能性是使作业参数化,并在两个地方使用相同的参数名称。因此,如果您定义了字符串参数 GIT_URL,请在作业的可视化配置中的远程存储库位置指定 $GIT_URL(假设您使用的是 Groovy 来自 SCM), 并在脚本中使用

git GIT_URL

然后每个触发作业的人都必须定义他们的分叉位置。 (或者您可以让参数只包含分叉名称等)