自定义环境创建流程

如果希望点击分支页面 云原生开发 能使用自定义的流水线配置, 可在仓库根目录下新增 .cnb.yml 文件, 文件内新增如下配置:

 1# .cnb.yml
 2$:
 3  # vscode 事件:专供页面中启动远程开发用
 4  vscode:
 5    - docker:
 6        # 自定义镜像作为开发环境
 7        image: node:20
 8      services:
 9        - vscode
10        - docker
11      stages:
12        - name: ls
13          script: ls -al

自定义资源规格

可以通过 runner.cpus 声明需要的开发资源,最大支持 64核,内存为 cpus x 2(GB)。

 1# .cnb.yml
 2$:
 3  vscode:
 4    - runner:
 5        cpus: 64
 6      docker:
 7        build: .ide/Dockerfile
 8      services:
 9        - vscode
10        - docker
11      stages:
12        - name: ls
13          script: ls -al

自定义启动事件

通过 .cnb.yml,声明指定事件触发时自动创建开发环境。触发事件推荐使用:

 1# .cnb.yml
 2# 匹配所有分支
 3(**):
 4  # 创建分支时创建开发环境
 5  branch.create:
 6    - name: vscode
 7      services:
 8        # 声明使用 vscode 服务
 9        - vscode
10      docker:
11        # 自定义开发环境
12        build: .ide/Dockerfile
13      stages:
14        - name: 执行自定义脚本
15          script:
16            - npm install
17            - npm run start

自定义可用时机

云原生开发可用时机默认为:流水线准备(prepare)阶段执行完(code-server 代码服务在准备阶段启动),stages 任务执行前。

如果希望执行某些任务后再进入开发环境,即延迟进入开发环境时机,可使用 vscode:go 内置任务。 使用该任务,启动云原生开发后,loading 页将延迟进入云原生开发入口选择页。当 vscode:go 任务执行后才能进入入口选择页。

注意,使用 vscode:go 任务将增加等待时间。 可将必须在进入开发环境前执行的任务放在 vscode:go 前执行, 在进入开发环境后执行的任务放在 vscode:go 后。 如果没有必须在进入开发环境前执行的任务,就无需使用 vscode:go

stages 任务执行失败,远程开发是否结束:

自定义环境销毁前任务

可使用 endStages 定义开发环境销毁前需要执行的任务.

 1# .cnb.yml
 2$:
 3  vscode:
 4    - docker:
 5        image: node:20
 6      services:
 7        - vscode
 8        - docker
 9      # 开发环境启动后会执行的任务
10      stages:
11        - name: ls
12          script: ls -al
13      # 开发环境销毁前会执行该任务
14      endStages:
15        - name: end stage 1
16          script: echo "end stage 1"
17        - name: end stage 2
18          script: echo "end stage 2"