跳到主要内容

流水线介绍

详细了解如何构建、触发、安全设置和配置Buddy流水线的实践攻略。

流水线的核心功能是构建和部署应用程序。 它还可以用于重复性、周期性功能,例如我们日常常用的网站监测和数据备份。

常见用例:

构建流水线

流水线由按特定顺序执行的操作组合组成。 例如,您可以创建一个流水线来测试和编译PHP应用程序并将其部署到服务器。 如果出现问题(例如测试未通过),流水线环节会向您的Slack频道或相关通信工具发送一条状态消息: 流水线示例

另一个用例涉及构建Node.js应用程序的Docker镜像并将其推送到注册中心: Docker流水线示例

触发流水线

可以通过三种不同的方式触发流水线:

流水线触发条件

您还可以指定将触发流水线的分支、标签或拉取请求:

  • 一个分支——例如:生产流水线的主分支
  • 在每次推送到存储仓时 - 通配符 *,例如:对于运行单元测试的流水线。
  • 推送满足特定模式的标签 – 通配符 refs/tags/v*,例如:用于发布应用程序新版本的流水线

分支选择

事件

选择事件作为触发模式将在提交被推送到Repo时运行流水线。例如:如果您想对存储仓的每次更改运行单元测试,您可以使用带有*的通配符:

例如:当您想在每次推送后运行单元测试时,您可以选择选项Git推送和通配符:

通配符触发条件

当您希望在dev分支发生更改后将更改从DEV分支自动部署到暂存服务器时,也可以这样使用:

单分支触发条件

手动

对于业务生产流水线,最好将其设置为手动模式,并将项目访问权限仅限于高级开发人员。

手动触发流水线时,您可以设置以下选项:

  • 流水线将针对哪个版本运行
  • 是否在执行前清除缓存
  • 如果部署应该基于变更集还是从头开始部署

手动流水线触发

定时

您可以将流水线设置为在一天中的某个时间触发。例如,您可以安排流水线在每天下午5点运行集成测试:

设置重复性流水线执行

您可使用Cron表达式来设置运行流水线的时间,并定义您需要的任何规则,例如:每周一至周五上午10:15触发: 高级重复性设置

信息

更多相关信息请看:日常集成测试监测流水线

流水线记录

流水线记录存储在运行选项卡中。在此您可以找到有关谁触发了流水线、何时触发以及针对哪个修订版完成的信息。

流水线运行记录

点击一个运行条目将显示其详细信息:

  • 动态记录
  • 运行时长
  • 触发模式
  • 是否强制清除缓存
  • 运行优先权

修订信息

如果您想了解有关构建性能的更多信息,请查看统计分析选项卡。它可让您快速查看构建时间、平均执行时间和错误频率等:

性能信息

流水线文件系统

每个流水线都附加了自己的文件系统。文件系统包含最新版本中存储仓的克隆以及流水线中生成的工件。它充当流水线的主缓存:因此,您无需获取整个存储仓和每次执行的依赖项。

流水线文件系统

工件

在执行期间创建的所有文件都将放在文件系统中。您可以通过UI或使用cURL浏览和下载。

配置与静态文件

并非所有文件都应存储在存储仓中。例如,特定环境(dev/stage/production)或包含敏感数据的配置文件。然而,您可以手动将它们上传到文件系统。这样它们将与工件和repo文件一起上传。

环境变量

您可以指定每个流水线的环境变量。这些变量可以在操作配置期间和构建期间使用。

变量页面

可见 & 权限

流水线中的可见性设置允许您将其可见性限制为单个用户和群组。

Visibility settings

您还可以对流水线施加某些权限,并分别为每个成员指定权限。权限可以限制为:

  • 仅浏览 – 您只能查看流水线记录和配置
  • 仅运行 – 您可以运行流水线但不能以任何方式对其进行编辑
  • 管理 – 您可以运行、添加、修改和删除流水线

高级流水线设置

切换到设置选项卡将显示一些高级功能,可让您微调您的流水线:

快捷链接

快捷链接在您的流水线上放置一个标签,使您可以快速访问相关网站,例如,在部署后查看更改。

快捷链接

触发条件

通常,您的应用程序首先构建,然后部署到服务器。然而,并非存储仓中的每个更改都需要构建。在这种情况下,您可以选择将触发构建的某些条件。

设置触发器条件

执行前清除缓存

缓存存储构建所需的存储仓和依赖项的克隆,这大大减少了构建时间。 然而,在某些情况下,您可能需要在每次构建执行时获取依赖项。为此,请在运行流水线之前选择选项自动清除缓存。每次运行流水线时,它将强制Buddy下载工件包。

始终从头开始部署

大多数部署操作都基于变更集,这意味着仅部署最新版本的文件。选中始终从头开始部署文件将强制Buddy在每次执行时部署存储仓中的所有文件。

流水线列表

每个流水线都有自己的配置和附加的单独文件系统。您可以创建多个流水线,这些流水线将在一个存储仓中运行不同的任务。 流水线视图使您可以快速访问最重要的信息:

  • 运行状态(成功运行、失败、进行中、暂停)
  • 触发模式(自动、手动、定时)
  • 上次运行时间
  • 已分配分支
  • 无论是部署到最新版本还是分支后面有多少次提交

参看