devops 上线(平台兼具YAML与GUI比竞品都优秀)
Buddy是一个知名DevOps自动化平台,支持云服务与本地私有化自托管部署。本文带您详细了解Buddy GUI和yaml中的流水线配置:
- 中文版:buddy.red
- 中文文档:docs.buddy.red
- 英文版:buddy.works
Buddy可让您通过两种方式配置流水线:
- GUI - 通过网站或API进行配置
- YAML - 通过位于存储仓中的“buddy.yml”进行配置
默认情况下,模式设置为GUI。这部分文档将解释如何通过Buddy激活和使用YAML配置。
如何将配置模式切换为YAML可以通过以下两种方式中的一种切换模式:
- 如果项目中还没有流水线,只需要推送buddy.yml文件至存储仓即可激活。
- 如果项目中已创建流水线:转向目标项目流水线后点击下拉按钮“下载YAML配置”, 以备稍后切换至YAML模式可直接将此备份推送至存储仓。 进入目标项目后通过导航栏进入“项目设置”,然后点击“流水线配置”区域之下从"Web UI"切换至“YAML”并点击“保存更改”按钮。转向项目存储仓并点击下拉按钮后选择“上传文件...”将之前下载的文件上传上去,或者通过克隆的本地Repo添加之前下载的YAML文件即可成功切换至YAML模式。(确保文件名为:buddy.yml)
- 请注意,一旦您切换到YAML,项目中的所有流水线都将被删除。一旦配置文件被推送到Repo后将被再次恢复显示回来。
如果您有一个之前使用YAML的项目,但想再次使用GUI配置流水线,只需进入“项目设置”并点击流水线配置区域内的GUI并保存更改即可切换GUI模式:
Buddy.yml与分支
流水线在“buddy.yml”文件中定义。将文件推送到分支X将重新配置:
- refs 或 events.refs 包含 refs/heads/X 的所有流水线
- refs 或 events.refs 设置为通配符匹配分支 X 的所有流水线
- 未设置 refs 或 events 的所有流水线,前提是分支 X 是默认分支
推送带有标签 X 的文件将重新配置:
- refs 或 events.refs 包含 refs/tags/X 的所有流水线
- refs 或 events.refs 设置为通配符匹配标记 X 的所有流水线
为了使配置更容易,您可以使用YAML工具助手:
- 转储项目中定义的流水线配置
- 在GUI中定义一个流水线,以便您可以看到它在YAML中呈现的内容
- 在GUI中定义一个操作,以便您可以看到它在YAML中呈现的内容
配置操作详细信息后,单击生成YAML:
生成YAML之后,将出现一个包含生成的YAML的信息页面,如下图:
.yml 文件中的流水线以列表的形式定义。以下是一个示例配置文件,其中定义了两条流水线:
- pipeline: "production"
on: "CLICK"
refs:
- "refs/heads/master"
actions:
- action: "Execute: npm test"
type: "BUILD"
docker_image_name: "library/node"
docker_image_tag: "6"
execute_commands:
- "npm install"
- "npm test"
setup_commands:
- "npm install -g gulp grunt-cli"
- action: "Upload files to winserver.sls"
type: "FTP"
input_type: "BUILD_ARTIFACTS"
local_path: "/"
login: "pass"
password: "testtest"
host: "winserver.sls"
port: "21"
- pipeline: "build server"
on: "EVENT"
events:
- type: "PUSH"
refs:
- "refs/heads/dev"
actions:
- action: "Execute: npm test"
type: "BUILD"
docker_image_name: "library/node"
docker_image_tag: "6"
execute_commands:
- "npm install"
- "npm test"
setup_commands:
- "npm install -g gulp grunt-cli"
在单个项目中拥有许多流水线的用户可以将定义拆分为Buddy将读取和解析的多个文件:
- 存储仓根目录下的 buddy.yml 文件(这个不变)
- .buddy目录下的所有*.yml文件
如果在多个条目和/或文件中定义了具有相同ID的流水线,则将根据代码行中的最后一个定义配置流水线(文件按字母顺序处理)。
信息
- YAML构架不会改变
- 每个文件的流水线数量没有限制
要加密yaml中的变量,您需要首先在工作区设置中设置加密盐值:
然后使用YAML工具助手为您的 buddy.yml 生成加密值:
解决问题
如果 buddy.yml 中的流水线定义不正确,将不会添加流水线。为了调试出是什么问题,请按照下列步骤操作:
- 转向项目动态信息流
- 使用新版本的 buddy.yml 查找包含提交的推送
单击提交将启动涵盖文件处理过程的日志:
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com