cnb-coll-faq
云原生构建-cnb.cool

官网
.cnb.yml配置版本迭代
二丫代码
具体代码:
v1-2025.4.1-第一次成功版(成功测试)
1master:
2 push:
3 - runner:
4 cpus: 16
5 services:
6 - docker
7 - git-clone-yyds
8 docker:
9 image: docker.cnb.cool/znb/images/node:18
10 volumes:
11 - /data/.cache:copy-on-write #声明式的构建缓存
12 stages:
13 - name: 🖨️ 打印环境
14 script: |
15 node -v && npm -v && yarn -v && pnpm -v
16 - name: 📦️ 安装依赖
17 script: |
18 pnpm install
19
20 - name: ⚗️ 编译项目
21 script: |
22 pnpm docs:build # VitePress 专用命令
23 - name: 🚚 发布制品
24 image: tencentcom/rsync
25 imports: https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/blob/master/env.yaml
26 settings:
27 user: ${SSH_USER}
28 key: ${SSH_KEY}
29 port: 22
30 hosts:
31 - ${ECS_IP}
32 source: docs/.vitepress/dist/
33 target: /root/rsync/rsync-vitepress/dist/
34 delete: true
v2-2025.4.2-第2次改进版(成功测试)
增加条件触发。
1master:
2 push:
3 - runner:
4 cpus: 16
5 services:
6 - docker
7 - git-clone-yyds
8 docker:
9 image: docker.cnb.cool/znb/images/node:18
10 volumes:
11 - /data/.cache:copy-on-write #声明式的构建缓存
12 stages:
13 - name: 🖨️ 打印环境
14 if: |
15 [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
16 script: |
17 node -v && npm -v && yarn -v && pnpm -v
18 - name: 📦️ 安装依赖
19 if: |
20 [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
21 script: |
22 pnpm install
23
24 - name: ⚗️ 编译项目
25 if: |
26 [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
27 script: |
28 pnpm docs:build # VitePress 专用命令
29 - name: 🚚 发布制品
30 if: |
31 [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
32 image: tencentcom/rsync
33 imports: https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/blob/master/env.yaml
34 settings:
35 user: ${SSH_USER}
36 key: ${SSH_KEY}
37 port: 22
38 hosts:
39 - ${ECS_IP}
40 source: docs/.vitepress/dist/
41 target: /root/rsync/rsync-vitepress/dist/
42 delete: true
案例
JenkinsGuide公开仓库
@One|onedayxyy.cn
https://cnb.cool/opsre/JenkinsGuide/-/blob/main/.cnb.yml



cnb.cool 需求
- 能同时推送到gitee库吗?
- 如何推送后同时刷新cdn?
- 自动构建成功后,发生消息通知?
- 如何只推送仓库,且不构建?或者 如何推送时 加上某个参数后 才会进行构建?(已解决)
- 还有其他平台可以实现类似cnb.cool 效果吗?(已解决)
cnb.cool其它特性
使用
公共仓库,不要用env命令打印环境变量

打印变量的方法


可以打印全部内容变量的哦


::: datils 全部内置变量为:
1打印所有变量:=======================================
2[🖨️ 打印环境] CNB_TAG_IS_RELEASE=false
3[🖨️ 打印环境] CNB_PULL_REQUEST_IID=
4[🖨️ 打印环境] CNB_COMMENT_ID=
5[🖨️ 打印环境] CNB_PULL_REQUEST_LIKE=false
6[🖨️ 打印环境] CNB_PULL_REQUEST_MERGE_SHA=
7[🖨️ 打印环境] CNB_GROUP_SLUG=onedayxyy
8[🖨️ 打印环境] CNB_COMMIT=998925b7ecda930bc8930e4b3e432b406f9bde89
9[🖨️ 打印环境] LANGUAGE=C.UTF-8
10[🖨️ 打印环境] CNB_COMMITTER=hg_it_nuc
11[🖨️ 打印环境] CNB_WEB_ENDPOINT=https://cnb.cool
12[🖨️ 打印环境] CNB_COMMIT_MESSAGE_TITLE=commit data
13[🖨️ 打印环境] CNB_PULL_REQUEST=false
14[🖨️ 打印环境] CI=true
15[🖨️ 打印环境] CNB_PIPELINE_KEY=pipeline-1
16[🖨️ 打印环境] NODE_VERSION=18.20.8
17[🖨️ 打印环境] HOSTNAME=6da14f19b39f
18[🖨️ 打印环境] YARN_VERSION=1.22.22
19[🖨️ 打印环境] CNB_PULL_REQUEST_ID=
20[🖨️ 打印环境] CNB_REPO_NAME=vitepress-theme-teek-one-private
21[🖨️ 打印环境] CNB_COMMENT_BODY=
22[🖨️ 打印环境] CNB_PULL_REQUEST_SHA=
23[🖨️ 打印环境] HOME=/root
24[🖨️ 打印环境] CNB_IS_RETRY=false
25[🖨️ 打印环境] CNB_TOKEN=****
26[🖨️ 打印环境] CNB_EVENT=push
27[🖨️ 打印环境] CNB_IS_NEW_BRANCH=false
28[🖨️ 打印环境] CNB_BUILD_JOB_KEY=job-0
29[🖨️ 打印环境] CNB_PULL_REQUEST_TARGET_SHA=
30[🖨️ 打印环境] CNB_DOCKER_REGISTRY=docker.cnb.cool
31[🖨️ 打印环境] CNB_ISSUE_DESCRIPTION=
32[🖨️ 打印环境] CNB_ISSUE_IID=
33[🖨️ 打印环境] CNB_REPO_ID=1907030244123078656
34[🖨️ 打印环境] CNB_BRANCH=master
35[🖨️ 打印环境] CNB_TAG_IS_PRE_RELEASE=false
36[🖨️ 打印环境] CNB_TAG_RELEASE_DESC=
37[🖨️ 打印环境] CNB_BUILD_USER=cnb.aYHw4hqhwFA
38[🖨️ 打印环境] CNB_CPUS=16
39[🖨️ 打印环境] CNB_IS_TAG=false
40[🖨️ 打印环境] CNB_PULL_REQUEST_TITLE=
41[🖨️ 打印环境] CNB_BUILD_USER_ID=1906923116693975040
42[🖨️ 打印环境] CNB_BRANCH_SHA=998925b7ecda930bc8930e4b3e432b406f9bde89
43[🖨️ 打印环境] CNB_PULL_REQUEST_REVIEWERS=
44[🖨️ 打印环境] HUSKY_SKIP_INSTALL=1
45[🖨️ 打印环境] CNB_ISSUE_ID=
46[🖨️ 打印环境] CNB_IS_CRONEVENT=false
47[🖨️ 打印环境] CNB_PIPELINE_NAME=pipeline-1
48[🖨️ 打印环境] CNB_WEB_PROTOCOL=https
49[🖨️ 打印环境] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
50[🖨️ 打印环境] CNB_HELM_REGISTRY=helm.cnb.cool
51[🖨️ 打印环境] CNB_PULL_REQUEST_BRANCH=
52[🖨️ 打印环境] CNB_BEFORE_SHA=fe56e4731e85128cfc808b245f10fbb38739f2f6
53[🖨️ 打印环境] CNB_BUILD_WEB_URL=https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/build/logs/cnb-0lo-1inppcdrb
54[🖨️ 打印环境] CNB_REPO_SLUG_LOWERCASE=onedayxyy/vitepress-theme-teek-one-private
55[🖨️ 打印环境] CNB_PULL_REQUEST_SLUG=
56[🖨️ 打印环境] CNB_REVIEW_REVIEWED_BY=
57[🖨️ 打印环境] CNB_BUILD_STAGE_NAME=🖨️ 打印环境
58[🖨️ 打印环境] CNB_WEB_HOST=cnb.cool
59[🖨️ 打印环境] CNB_BUILD_START_TIME=Tue, 01 Apr 2025 23:01:02 GMT
60[🖨️ 打印环境] LANG=C.UTF-8
61[🖨️ 打印环境] CNB_TAG_MESSAGE=
62[🖨️ 打印环境] CNB_TOKEN_USER_NAME=cnb
63[🖨️ 打印环境] CNB_BUILD_JOB_NAME=🖨️ 打印环境
64[🖨️ 打印环境] CNB_REPO_URL_HTTPS=https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private.git
65[🖨️ 打印环境] CNB_ISSUE_STATE=
66[🖨️ 打印环境] CNB_PIPELINE_ID=cnb-0lo-1inppcdrb-001
67[🖨️ 打印环境] CNB_ISSUE_TITLE=
68[🖨️ 打印环境] CNB_COMMIT_MESSAGE=commit data
69[🖨️ 打印环境]
70[🖨️ 打印环境] CNB_COMMITTER_EMAIL=2675263825@qq.com
71[🖨️ 打印环境] CNB_COMMIT_SHORT=998925b7
72[🖨️ 打印环境] CNB_PULL_REQUEST_PROPOSER=
73[🖨️ 打印环境] CNB_IS_NEW_BRANCH_WITH_UPDATE=false
74[🖨️ 打印环境] CNB_PULL_REQUEST_REVIEW_STATE=
75[🖨️ 打印环境] CNB_REPO_SLUG=onedayxyy/vitepress-theme-teek-one-private
76[🖨️ 打印环境] CNB_BUILD_WORKSPACE=/workspace/
77[🖨️ 打印环境] CNB_GROUP_SLUG_LOWERCASE=onedayxyy
78[🖨️ 打印环境] CNB_BUILD_ID=cnb-0lo-1inppcdrb
79[🖨️ 打印环境] CNB_RUNNER_IP=10.235.16.13
80[🖨️ 打印环境] PWD=/workspace
81[🖨️ 打印环境] CNB_TAG_RELEASE_TITLE=
82[🖨️ 打印环境] CNB_EVENT_URL=https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/commit/998925b7ecda930bc8930e4b3e432b406f9bde89
83[🖨️ 打印环境] CNB=true
84[🖨️ 打印环境] CNB_REVIEW_LAST_REVIEWED_BY=
85[🖨️ 打印环境] CNB_PIPELINE_DOCKER_IMAGE=docker.cnb.cool/znb/images/node:18
86[🖨️ 打印环境] TZ=Asia/Shanghai
87[🖨️ 打印环境] CNB_REPO_NAME_LOWERCASE=vitepress-theme-teek-one-private
88[🖨️ 打印环境] CNB_PULL_REQUEST_ACTION=
89[🖨️ 打印环境] CNB_API_ENDPOINT=https://api.cnb.cool
90[🖨️ 打印环境] CNB_ISSUE_IS_RESOLVED=
91[🖨️ 打印环境] CNB_ISSUE_OWNER=
92[🖨️ 打印环境] 使用 commit 998925b7ecda930bc8930e4b3e432b406f9bde89
93[🖨️ 打印环境] Author: hg_it_nuc <2675263825@qq.com>
94[🖨️ 打印环境] Date: Wed Apr 2 07:01:01 2025 +0800
95[🖨️ 打印环境]
96[🖨️ 打印环境] commit data
97[🖨️ 打印环境]
98[🖨️ 打印环境] commit fe56e4731e85128cfc808b245f10fbb38739f2f6
99[🖨️ 打印环境] Author: hg_it_nuc <2675263825@qq.com>
100[🖨️ 打印环境] Date: Wed Apr 2 06:55:46 2025 +0800
101[🖨️ 打印环境]
102[🖨️ 打印环境] commit data
103[🖨️ 打印环境]
104[🖨️ 打印环境] commit eb8a04bd26f203463d9d19ab902aedaee19b3098
105[🖨️ 打印环境] Author: hg_it_nuc <2675263825@qq.com>
106[🖨️ 打印环境] Date: Wed Apr 2 06:54:58 2025 +0800
:::
最佳实践
https://cnb.cool/examples/showcase

- react 构建将静态资源 SSH 部署到目标服务器
- hexo + rsync 将静态资源部署到目标服务器
- 从 CNB 同步代码到其他 Git 托管平台
- 提供CNB基础开发构建环境镜像,通过构建按钮指定构建,优雅且舒服
定价
https://docs.cnb.cool/zh/saas/pricing.html
概述
当前正在使用的为 云原生构建-社区版,每个 顶级组织 独立计费,月初基于上个自然月的使用规模,按量计费。
#计费模式
#资源使用费
| 计费项 | 免费额度 | 公测限免额度 | 超额计费标准 | 使用场景 |
|---|---|---|---|---|
| 仓库存储 | 100 GiB | 100 GiB | 1 元/GiB/月 | Git 对象 |
| 对象存储 | 100 GiB | 100 GiB | 1 元/GiB/月 | 制品、LFS 对象、图片及附件 |
| 云原生构建 | 160 核时/月 | 1600 核时/月 | 0.125 元/核时 | 云原生构建 |
| 云原生开发 | 1600 核时/月 | 16000 核时/月 | 0.125 元/核时 | 云原生开发 |
注:公测限免额度,公测期间限时提供,公测结束后自动失效。
#统计方式
云原生构建、云原生开发采用
核时作为计量单位。例如:
8核构建机使用1小时,用量为8核 x 1小时即8核时。仓库存储、对象存储,统计自然月内存储的平均用量。
当前统计方式:月底 24 点,免费配额外的资源用量。
云原生构建、云原生开发,统计自然月的累计用量
一个自然月周期,免费额度外,累计消耗的资源用量。
免费额度说明
仓库存储,Git 对象占用的存储空间,免费配额 100GiB。
对象存储,制品、LFS 对象、图片及附件占用的存储空间,免费配额 100GiB。
云原生构建 免费额度 160核时/月,月底清零,不叠加至次月。
| CPU(核) | 内存(GiB) | 免费额度可用时长 |
|---|---|---|
| 1 | 2 | 160小时 |
| 2 | 4 | 80小时 |
| 4 | 8 | 40小时 |
| 8 | 16 | 20小时 |
| 16 | 32 | 10小时 |
| 32 | 64 | 5小时 |
| 64 | 128 | 2.5小时 |
云原生开发 免费额度 1600核时/月,月底清零,不叠加至次月。
| CPU(核) | 内存(GiB) | 免费额度可用时长 | 适用场景 |
|---|---|---|---|
| 1 | 2 | 1600小时 | 可支持10人,每天使用8小时,持续20天 |
| 2 | 4 | 800小时 | 可支持5人,每天使用8小时,持续20天 |
| 4 | 8 | 400小时 | 可支持3人,每天使用8小时,持续16天 |
| 8 | 16 | 200小时 | 可支持1人,每天使用8小时,持续25天 |
| 16 | 32 | 100小时 | 可支持1人,每天使用8小时,持续12天 |
| 32 | 64 | 50小时 | 可支持1人,每天使用8小时,持续6天 |
| 64 | 128 | 25小时 | 可支持1人,每天使用8小时,持续3天 |
非盈利组织特权
符合条件的非盈利组织,可申请永久免费使用特权,特权内容包含:
仓库存储,Git 对象占用的存储空间,特权配额 6TiB。
对象存储,制品、LFS 对象、图片及附件占用的存储空间,特权配额 60TiB。
云原生构建 特权额度 6400核时/月,月底清零,不叠加至次月。
云原生开发 特权额度 64000核时/月,月底清零,不叠加至次月。
#申领方式
请公益慈善机构前往 腾讯技术公益数字工具箱 (opens new window)完成申领。


其它devop平台推荐
与 cnb.cool 功能类似的 DevOps 平台有很多,以下是国内外一些主流的 DevOps 平台和工具,它们提供了类似的持续集成(CI)、持续交付(CD)、代码管理、自动化测试等功能:
国内 DevOps 平台
阿里云效(Alibaba Cloud DevOps)
- 功能:代码托管、CI/CD、流水线、自动化测试、容器镜像服务等。
- 特点:与阿里云生态深度集成,适合阿里云用户。
- 官网:https://www.aliyun.com/product/devops
腾讯云 CODING
- 功能:代码托管、CI/CD、项目管理、自动化测试、制品管理等。
- 特点:支持多种编程语言和框架,适合中小型团队。
- 官网:https://coding.net
华为云 DevCloud
- 功能:代码托管、CI/CD、流水线、自动化测试、容器镜像服务等。
- 特点:与华为云生态深度集成,适合华为云用户。
- 官网:https://www.huaweicloud.com/product/devcloud.html
百度效率云
- 功能:代码托管、CI/CD、流水线、自动化测试、项目管理等。
- 特点:支持多种编程语言和框架,适合中小型团队。
- 官网:https://xiaolvyun.baidu.com
国外 DevOps 平台
GitLab CI/CD
- 功能:代码托管、CI/CD、流水线、自动化测试、容器镜像服务等。
- 特点:开源且功能强大,适合中小型团队和企业。
- 官网:https://about.gitlab.com
GitHub Actions
- 功能:代码托管、CI/CD、自动化测试、容器镜像服务等。
- 特点:与 GitHub 深度集成,适合开源项目和个人开发者。
- 官网:https://github.com/features/actions
Jenkins
- 功能:CI/CD、流水线、自动化测试、插件扩展等。
- 特点:开源且高度可定制,适合技术能力较强的团队。
- 官网:https://www.jenkins.io
CircleCI
- 功能:CI/CD、流水线、自动化测试、容器镜像服务等。
- 特点:支持多种编程语言和框架,适合中小型团队。
- 官网:https://circleci.com
Travis CI
- 功能:CI/CD、流水线、自动化测试、容器镜像服务等。
- 特点:适合开源项目和个人开发者。
- 官网:https://travis-ci.com
Azure DevOps
- 功能:代码托管、CI/CD、流水线、自动化测试、容器镜像服务等。
- 特点:与 Azure 云生态深度集成,适合微软技术栈用户。
- 官网:https://azure.microsoft.com/zh-cn/services/devops
选择建议
| 平台 | 适合场景 | 特点 |
|---|---|---|
| 阿里云效 | 阿里云用户 | 与阿里云深度集成,功能全面 |
| 腾讯云 CODING | 中小型团队 | 支持多种语言和框架,易用性高 |
| GitLab CI/CD | 开源项目/企业 | 开源且功能强大,适合技术团队 |
| GitHub Actions | 开源项目/个人开发者 | 与 GitHub 深度集成,适合开源社区 |
| Jenkins | 技术能力较强的团队 | 开源且高度可定制,适合复杂场景 |
总结
- 如果需要与国内云服务深度集成,可以选择 阿里云效、腾讯云 CODING 或 华为云 DevCloud。
- 如果需要开源或国际化支持,可以选择 GitLab CI/CD、GitHub Actions 或 Jenkins。
- 根据团队规模、技术栈和预算选择最适合的平台即可!
如果有其他问题,欢迎随时提问! 🚀
哪种适合个人使用,免费的?
对于个人用户来说,选择免费且功能丰富的 DevOps 平台非常重要。以下是几款适合个人使用的免费 DevOps 平台,它们提供了基础的 CI/CD、代码托管、自动化测试等功能:
1. GitHub Actions
- 特点:
- 与 GitHub 深度集成,适合开源项目和个人开发者。
- 提供免费的 CI/CD 功能,每月有一定额度的免费构建时间。
- 支持多种编程语言和框架。
- 免费额度:
- 公开仓库:无限免费构建时间。
- 私有仓库:每月 2,000 分钟免费构建时间。
- 官网:https://github.com/features/actions
2. GitLab CI/CD
- 特点:
- 提供免费的 CI/CD 功能,适合个人和开源项目。
- 支持代码托管、流水线、自动化测试等功能。
- 开源且功能强大,适合技术能力较强的用户。
- 免费额度:
- 公开仓库:无限免费构建时间。
- 私有仓库:每月 400 分钟免费构建时间。
- 官网:https://about.gitlab.com
3. Travis CI
- 特点:
- 适合开源项目和个人开发者。
- 提供免费的 CI/CD 功能,支持多种编程语言和框架。
- 与 GitHub 深度集成。
- 免费额度:
- 公开仓库:无限免费构建时间。
- 私有仓库:每月 100 分钟免费构建时间。
- 官网:https://travis-ci.com
4. CircleCI
- 特点:
- 提供免费的 CI/CD 功能,适合个人和开源项目。
- 支持多种编程语言和框架,易用性高。
- 与 GitHub 和 Bitbucket 深度集成。
- 免费额度:
- 每月 6,000 分钟免费构建时间。
- 官网:https://circleci.com
5. Jenkins
- 特点:
- 开源且高度可定制,适合技术能力较强的用户。
- 可以免费使用,但需要自己搭建和维护。
- 支持插件扩展,功能非常强大。
- 免费额度:
- 完全免费,无构建时间限制。
- 官网:https://www.jenkins.io
6. 腾讯云 CODING(免费版)
- 特点:
- 提供免费的代码托管、CI/CD 功能,适合个人开发者。
- 支持多种编程语言和框架,易用性高。
- 与腾讯云生态集成。
- 免费额度:
- 每月 1,000 分钟免费构建时间。
- 官网:https://coding.net
选择建议
| 平台 | 适合场景 | 免费额度 | 特点 |
|---|---|---|---|
| GitHub Actions | 开源项目/个人开发者 | 公开仓库无限,私有仓库 2,000 分钟 | 与 GitHub 深度集成 |
| GitLab CI/CD | 开源项目/个人开发者 | 公开仓库无限,私有仓库 400 分钟 | 功能强大,开源 |
| Travis CI | 开源项目/个人开发者 | 公开仓库无限,私有仓库 100 分钟 | 简单易用 |
| CircleCI | 个人开发者 | 每月 6,000 分钟 | 支持多种语言和框架 |
| Jenkins | 技术能力较强的用户 | 完全免费 | 开源且高度可定制 |
| 腾讯云 CODING | 个人开发者 | 每月 1,000 分钟 | 与腾讯云生态集成 |
总结
- 如果你是 GitHub 用户,推荐使用 GitHub Actions,功能强大且免费额度较高。
- 如果你是 GitLab 用户,推荐使用 GitLab CI/CD,适合开源项目和个人开发者。
- 如果你需要 完全免费 且不介意自己搭建,推荐使用 Jenkins。
- 如果你更喜欢 国内平台,可以选择 腾讯云 CODING,免费额度足够个人使用。
根据你的需求和技术栈选择最适合的平台即可!如果有其他问题,欢迎随时提问! 🚀

