1. 概述

本文将介绍如何在 Jenkins 中创建一个用于构建 Git 项目的作业,并看到如何选择要构建的分支。为此目的,我们将使用 Active Choices 插件。

2. 安装 Active Choices 插件

首先,我们需要安装 Active Choices 插件。在 Jenkins 的左侧面板中,点击 Manage Jenkins

manage jenkins

然后,在 系统配置 栏目下,选择 管理插件

manage plugins

最后,转到 可用 部分,在过滤输入框中键入 Active Choices 并勾选框:

active choices

现在可以点击 不重启安装 按钮,安装将进行!

3. 作业创建

接下来,我们将创建我们的作业并配置分支选择。

3.1. 创建参数化作业

为了创建作业,在 Jenkins 的左侧面板中,点击 新建项目

new item

出现项目创建界面。让我们将 自由式项目 称为 Demo Git 分支配置

job creation

我们现在到达了作业的配置页面。在 一般 部分,勾选 此项目是参数化的 复选框。*然后,我们将在 添加参数 下拉菜单中选择 Active Choices 反应参数*

active choices reactive parameter

点击后,将弹出参数配置界面。

3.2. 添加 Groovy 脚本获取分支

我们现在可以配置我们的反应参数。我们将它命名为 branch,并保持为 单选

branch parameter

现在,勾选 Groovy 脚本 并在出现的 脚本 区域填写以下脚本:

def gitUrl = "https://github.com/eugenp/tutorials.git"
def gitBranches = "git ls-remote --heads ${gitUrl}".execute().text.readLines().collect { it.split()[1].replaceAll("refs/heads/", "") }.sort().reverse()

首先,我们定义了要检出的 GitHub 存储库的 URL。然后,我们使用了 git ls-remote 命令来检索此存储库的远程分支信息。我们将这些信息转换为文本行集合:每行代表一个不同的分支。每个分支名称是每行中的第二个元素。此外,我们从每个分支名称中删除了 refs/heads 前缀以增加清晰度。最终,我们将列表按字母顺序排序,使其更易于用户使用。

3.3. 配置源代码管理

现在,让我们转向 源代码管理 子部分。为了完成作业的配置,需要将 Git 选项替换为 。将显示用于配置 Git 存储库的界面。我们将填写 仓库 URL:它与 Groovy 脚本中使用的 URL 相同。我们也需要指定要构建的分支。 因为我们将反应参数命名为 branch,所以我们将 ${branch} 放入这个字段:

source code management

现在可以点击页面底部的 保存 按钮,完成作业的创建!

4. 使用

我们现在来到了 Demo Git 分支配置 项目的根页面。在左侧面板中,点击 使用参数构建

build with parameters

现在被要求选择要构建的分支。 我们的示例存储库只有一个唯一的 master 分支,因此它是唯一可用的选择:

branch selection

5. 总结

在这篇教程中,我们安装了 Active Choices 插件。它帮助我们创建了一个参数化作业。我们的参数包含了一个来自 Groovy 脚本获取的 GitHub 存储库中所有分支的列表。这最终使我们能够在运行作业时选择要构建的分支。