724 字约 2 分钟
若希望点击分支页面的「云原生开发」按钮时使用自定义流水线,可在仓库根目录创建 .cnb.yml 并添加以下配置:
.cnb.yml
$:
# vscode 事件:专供页面中启动云原生开发用
vscode:
- docker:
# 自定义镜像作为开发环境
image: node:20
services:
- vscode
- docker
stages:
- name: ls
script: ls -al自定义资源规格
可通过 runner.cpus 声明所需的开发资源,最大支持 64核,内存为 cpus × 2(GB)。
.cnb.yml
$:
vscode:
- runner:
cpus: 64
docker:
build: .ide/Dockerfile
services:
- vscode
- docker
stages:
- name: ls
script: ls -al自定义启动事件
通过 .cnb.yml 声明特定事件触发时自动创建开发环境,推荐使用以下触发事件:
vscode:仓库页面点击启动云原生开发按钮时创建开发环境branch.create:创建分支时创建开发环境api_trigger:自定义事件触发创建开发环境web_trigger:web 页面自定义事件触发创建开发环境
.cnb.yml
# 匹配所有分支
(**):
# 创建分支时创建开发环境
branch.create:
- name: vscode
services:
# 声明使用 vscode 服务
- vscode
docker:
# 自定义开发环境
build: .ide/Dockerfile
stages:
- name: 执行自定义脚本
script:
- npm install
- npm run start自定义可用时机
云原生开发默认在流水线准备阶段(prepare)完成后、stages 执行前可用(code-server 在准备阶段启动)。
如需在执行某些任务后再进入开发环境(延迟进入),可使用内置任务 vscode:go。 启用后,云原生开发启动时 loading 页将停留在入口选择页,直到 vscode:go 任务执行完毕才可进入。
注意:使用 vscode:go 会增加等待时间。请将必须在进入前执行的任务放在 vscode:go 之前,进入后执行的任务放在之后。若无需延迟进入,则不必使用 vscode:go。
当 stages 任务执行失败时,开发环境的处理逻辑如下:
- 使用
vscode:go:vscode:go之前的任务执行失败,开发环境将被销毁 - 使用
vscode:go:vscode:go之后的任务执行失败,开发环境不会销毁 - 未使用
vscode:go:stages任务执行失败,开发环境不会销毁
自定义环境销毁前任务
可使用 endStages 定义开发环境销毁前需要执行的任务。
.cnb.yml
$:
vscode:
- docker:
image: node:20
services:
- vscode
- docker
# 开发环境启动后执行的任务
stages:
- name: ls
script: ls -al
# 开发环境销毁前执行的任务
endStages:
- name: end stage 1
script: echo "end stage 1"
- name: end stage 2
script: echo "end stage 2"