Code Stream 提供一个 Jenkins 插件,该插件可触发用于生成和测试源代码的 Jenkins 作业。Jenkins 插件运行测试用例,并且可以使用自定义脚本。

要在管道中运行 Jenkins 作业,需要使用 Jenkins 服务器,并在 Code Stream 中添加 Jenkins 端点。然后创建管道并向其添加 Jenkins 任务。

Code Stream 中使用 Jenkins 任务和 Jenkins 端点时,可以创建支持 Jenkins 中多分支作业的管道。多分支作业包括 Git 存储库每个分支中的单个作业。在 Code Stream 中创建支持多分支作业的管道时:

  • Jenkins 任务可以运行位于 Jenkins 服务器上多个文件夹中的 Jenkins 作业。
  • 可以在 Jenkins 任务配置中覆盖文件夹路径,以便使用不同的文件夹路径,这将覆盖在 Code Stream 的 Jenkins 端点中定义的默认路径。
  • Code Stream 中的多分支管道检测 Git 存储库或 GitHub 存储库中类型为 .groovy 的 Jenkins 作业文件,并开始为在存储库中扫描到的每个分支创建作业。
  • 可以使用在 Jenkins 任务配置中提供的路径覆盖在 Jenkins 端点中定义的默认路径,并运行与主 Jenkins 作业中的任何分支相关联的作业和管道。

前提条件

  • 设置运行 1.561 或更高版本的 Jenkins 服务器。
  • 验证您是 Code Stream 中项目的成员。如果您不是成员,则让 Code Stream 管理员将您添加为项目的成员。请参见如何在 Code Stream 中添加项目
  • 确认作业在 Jenkins 服务器中存在,以便管道任务可以运行该作业。

过程

  1. 添加并验证 Jenkins 端点。
    1. 单击端点 > 新建端点
    2. 选择一个项目,并为端点类型选择 Jenkins。然后输入名称和描述。
    3. 如果该端点是基础架构中的关键业务组件,请启用标记为受限制
    4. 输入 Jenkins 服务器的 URL。
    5. 输入用于登录到 Jenkins 服务器的用户名和密码。然后输入其余信息。
      表 1. Jenkins 端点的其余信息
      端点条目 说明
      文件夹路径 用于对作业进行分组的文件夹的路径。Jenkins 可以运行该文件夹中的所有作业。可以创建子文件夹。例如:
      • folder_1 可以包括 job_1
      • folder_1 可以包括 folder_2,后者可以包括 job_2

      folder_1 创建端点时,文件夹路径为 job/folder_1,并且端点仅列出 job_1

      要获取名为 folder_2 的子文件夹中的作业列表,必须创建另一个使用文件夹路径 /job/folder_1/job/folder_2/ 的端点。

      多分支 Jenkins 作业的文件夹路径 要支持多分支 Jenkins 作业,请在 Jenkins 任务中输入完整路径,其中包括 Jenkins 服务器 URL 和完整的作业路径。在 Jenkins 任务中包括文件夹路径时,该路径将替代 Jenkins 端点上显示的路径。对于 Jenkins 任务中的自定义文件夹路径, Code Stream 仅显示该文件夹中的作业。
      • 例如:https://server.yourcompany.com/job/project
      • 如果管道还必须触发主 Jenkins 作业,请使用:https://server.yourcompany.com/job/project/job/main
      URL Jenkins 服务器的主机 URL。以 protocol://host:port 格式输入 URL。例如:http://192.10.121.13:8080
      轮询间隔 Code Stream 向 Jenkins 服务器轮询更新的间隔持续时间。
      请求重试计数 Jenkins 服务器的已调度生成请求的重试计数。
      重试等待时间 重试 Jenkins 服务器的生成请求之前等待的秒数。
    6. 单击验证,然后验证端点是否连接到 Code Stream。如果未连接,请更正任何错误,然后单击保存
      生成和测试代码的 Jenkins 端点需要 URL 并允许创建用于存储用户密码的变量。
  2. 要生成代码,请创建管道,然后添加使用 Jenkins 端点的任务。
    1. 单击管道 > 新建管道 > 空白画布
    2. 单击默认阶段。
    3. 在“任务”区域,输入任务的名称。
    4. 选择 Jenkins 作为任务类型。
    5. 选择您创建的 Jenkins 端点。
    6. 从下拉菜单中,从 Jenkins 服务器中选择管道将运行的作业。
    7. 输入作业的参数。
    8. 输入 Jenkins 作业的身份验证令牌。
    配置使用 Jenkins 端点的 Jenkins 任务时,可以选择 Jenkins 作业,添加值,还可以输入令牌。
  3. 启用并运行管道,然后查看管道执行。
    Jenkins 任务的管道执行显示 Jenkins 作业详细信息,包括作业 ID、作业 URL 以及作业结果中的键和值。
  4. 在管道仪表板中查看执行详细信息和状态。
    可以确定任何失败以及失败原因。还可以查看有关管道执行持续时间、完成和失败的趋势。
    管道仪表板显示有关管道执行的详细信息,例如管道运行数及其持续时间以及每次运行的状态。

结果

恭喜!通过添加端点,创建管道并配置用于生成代码的 Jenkins 任务,您已将 Code Stream 与 Jenkins 集成。

示例: Jenkins 生成任务的示例 YAML

对于此示例中使用的 Jenkins 生成任务类型,YAML 类似于以下代码,并且通知已打开:

test:
  type: Jenkins
  endpoints:
    jenkinsServer: jenkins
  input:
    job: Add two numbers
    parameters:
      Num1: '23'
      Num2: '23'

下一步做什么

有关更多信息,请参见其他节。请参见将 Code Stream 连接到端点