快速开始
云原生构建
以仓库为主体,由 配置文件 描述在哪个 分支 下发生什么 事件 时执行什么 任务。
下面以一个最简示例开始,介绍如何一步步操作,创建仓库并触发一条流水线。
接着以开发中常见的 Pull Request
流水线检测需求为目标,介绍如何一步步编写配置文件。
在此基础上,可以在完整示例中的选择具体场景的仓库,fork
仓库或复制其中配置文件,编写出符合自身需求的流水线配置。
# 简单示例
# 创建仓库
新建一个仓库(如有跳过),创建好后,可以点击 云原生开发
按钮快速创建一个开发环境。
选择 WebIDE
进入开发界面,方便快捷。
# 配置文件
一个简单的流水线配置如下:
# 分支名
main:
# 事件名
push:
# 要执行的任务
- stages:
- name: echo
script: echo "hello world"
添加 CI
配置文件 .cnb.yml
,将该内容复制进配置文件,提交并 push
到远端 main
分支。
即会触发流水线构建。
# 构建详情
在仓库页面点击 云原生构建
可以看到构建列表。
最新一条即是刚刚触发的 push
事件流水线,点进去可以看到构建详情。
下方那条有 loading icon 的记录是
云原生开发
对应的构建。
# 配置说明
# 日常需求
一个常见的 CI
需求是,主分支有 Pull Request
时,触发流水线进行 lint 和 test 检测,未通过则发出通知。
我们分析下这个需求,可以从中抽取一些要素:
- 主分支,比如
main
。 - 仓库事件,即
pull_request
事件。 - 流水线任务:
- lint
- test
- 失败时的任务
- notify
下面我们根据这些要素一步步编写 CI
配置文件。
# 配置编写
第一层属性为分支名:
#分支名
main:
分支下有 pull_request
事件时触发构建:
#分支名
main:
# 事件名
pull_request:
事件可以执行多条流水线(并行),流水线有多个任务(串行或并行)。
这里我们简化,事件下只有一条流水线:
#分支名
main:
# 事件名
pull_request:
# 数组类型表示可以有多个流水线
- name: pr-check
stages:
包括两个串行的任务,分别是 lint 和 test。
#分支名
main:
# 事件名
pull_request:
# 数组类型表示可以有多个流水线
- name: pr-check
# 流水线下的多个任务
stages:
# 要执行的任务
- name: lint
script: echo "lint job"
- name: test
script: echo "test job"
如果失败的话,要发送通知,流水线下除 stages
表示期望执行的任务外,还有个 failStages
表示 stages
任务执行失败时要执行的任务:
#分支名
main:
# 事件名
pull_request:
# 数组类型表示可以有多个流水线
- name: pr-check
# 流水线下的多个任务
stages:
- name: lint
script: echo "lint job"
- name: test
script: echo "test job"
# stages 失败时执行的任务
failStages:
- name: lint
script: echo "notify to some chat group"
总结下,一个流水线的执行过程是:
- 仓库发生事件
- 确定所属分支
- 确定事件名
- 执行流水线
- 执行任务
- 失败时的任务
实际上在流水线和任务中间还有一层
阶段
,但通常可以省略。
# 语法说明
想了解配置文件详细语法请移步 语法。
想了解配置文件更多用法请移步 配置文件。
# 完整示例
更多完整示例参考 完整示例。