配置流水线源

本文介绍流水线源,包括代码源、Jenkins源、流水线源三种类型。

流水线源是 Flow 流水线的输入源头,可以从文件托管服务或者其他第三方服务中获取原料,并将这些原料放入到工作区。流水线可以对工作区的原料进行处理,通常处理的目的可以是编译打包、执行任务、版本制作等,流水线处理输出的结果可以是软件的测试报告、压缩文件、目录、文档等。

代码源

  • Flow支持将业界通用的代码仓库作为流水线的触发源,在流水线的编辑页面,点击 添加流水线源,为流水线添加代码源,支持:

image
  • 代码源可以使用 服务连接 添加用户名和密码进行授权。

  • 此外,自建 Gitlab、Bitbucket、Gitlab、通用Git还可以使用 企业公钥 授权。

    • 拷贝企业 SSH 公钥,并添加到 Git 仓库的中。以自建 Gitlab 为例,为了能够使用企业 SSH 公钥同步代码,需要将企业 SSH 公钥绑定到 Git 仓库个人账号上。由于每个公钥在同一个代码平台上仅可配置一次,因此最佳实践是将企业管理员将 SSH 公钥配置到企业公共账号,Flow 通过公共账号同步代码。

image

Jenkins源

  • Flow 支持将你的 Jenkins 服务配置为流水线源,当流水线触发运行时,Flow 会根据您的配置下载 Jenkins 任务的构建产物并执行后续任务。你的构建产物需要在 Jenkins 的任务中先进行归档操作。

image
  • 在流水线编辑页,点击 添加流水线源,在 添加流水线源 弹框中选择 Jenkins,添加Jenkins服务连接,输入您的 Jenkins 公网地址、用户、密码,完成账号绑定。

image
  • 选择 Jenkins 任务 Job名称默认版本,即可完成配置。

image
重要

请确保您的 Jenkins 服务配置了公网出口。

image

Flow流水线源

在实际应用过程中,存在构建环节和部署环节分离的场景。比如,需要对开发环境、测试环境、生产环境分别进行部署,但是每个环境的部署频率是不同的。如果将多个环境的部署环境配置在同一条流水线,则会存在多次重复、取消的情况。如果将多个环境配置成多条流水线,则每个环境在部署过程中会出现重复构建的现象。

因此,Flow 提供了流水线之间触发的能力,您可以将流水线 A 设置为流水线 B 的触发源,当流水线 B 被触发运行时,Flow 会根据您的配置下载源流水线 A 中的构建产物并执行后续任务。

重要

流水线 A 若想下载流水线 B 的构建产物,B 需要将构建产物进行归档,归档完成后流水线 B 的构建产物会和流水线运行记录绑定。可查看归档至云效公共存储空间

如果使用 Packages 通用制品仓库管理制品文件,上传至 Packages 通用制品仓库并不会将制品归档,因此如果想实现多流水线之间的制品传递,需要在上传完 Packages 后对制品文件进行归档操作。

  1. 在流水线编辑页,点击 添加流水线源,在 添加流水线源 抽屉中选择 Flow流水线,选择 源流水线默认版本,当流水线被执行时就会下载源流水线默认版本的构建产物。同时,流水线之间也支持自动触发,打开 触发事件 开关,可选择自动触发的事件。

image
  1. 配置完成后,点击保存运行,会下载源流水线的构建产物至工作区;若要将构建产物进行部署,需要将工作区的构建产物上传之后,才可选择部署。

场景示例

  • 场景说明:流水线 A 生成产物,流水线 B 获取构建产物后,发布至 ECS。

  • 操作步骤:

    • 流水线 A 中进行 Java 构建,并对构建产物进行归档操作。

    • 流水线 B 将流水线 A 配置为流水线源,将下载到的构建产物重新归档,并部署至 ECS。

imageimageimageimage

阿里云首页 云效 相关技术圈