cnb-coll-faq
云原生构建-cnb.cool
官网
.cnb.yml配置版本迭代
二丫代码
具体代码:
main:
push:
- stageOne:
runner:
cpus: 8
services:
- docker
- git-clone-yyds
stages:
- name: sync to github
image: tencentcom/git-sync
imports: https://cnb.cool/eryajf/build-env/-/blob/main/env.yaml
settings:
branch: main
auth_type: https
username: ${GIT_USERNAME}
password: ${GIT_ACCESS_TOKEN}
target_url: https://github.com/opsre/JenkinsGuide.git
git_email: 'github-actions[bot]@users.noreply.github.com'
- stageTwo:
runner:
cpus: 16
services:
- docker
- git-clone-yyds
docker:
image: docker.cnb.cool/znb/images/node:18
volumes:
- /data/.cache:copy-on-write
stages:
- name: 🖨️ 打印环境
script: |
node -v && npm -v && yarn -v && pnpm -v
- name: 📦️ 安装依赖
script: |
pnpm install
- name: ⚗️ 编译项目
script: |
pnpm build
- name: 🚚 发布制品
image: tencentcom/rsync
imports: https://cnb.cool/eryajf/build-env/-/blob/main/env.yaml
settings:
user: ${SSH_USER}
key: ${SSH_KEY}
port: 2023
hosts:
- prod.eryajf.net
source: docs/.vitepress/dist/
target: /data/www/JenkinsGuide/
delete: true
script: |
docker run --rm docker.cnb.cool/znb/images/lenye-pmsg \
workweixin bot -k ${WECOM_BOT} \
-m markdown "🎉 JenkinsGuide 又一次发布啦!\n发布时间: `date "+%Y-%m-%d %H:%M"`"
- name: 🧘♂️ 刷新缓存
imports: https://cnb.cool/eryajf/build-env/-/blob/main/env.yaml
script: |
docker login -u ${CNB_TOKEN_USER_NAME} -p "${CNB_TOKEN}" ${CNB_DOCKER_REGISTRY}
docker run --rm -e DOGE_AK=${DOGE_AK} -e DOGE_SK=${DOGE_SK} \
docker.cnb.cool/eryajf/eryactl \
eryactl doge flushcdnpath -p "https://jenkinsguide.opsre.top/"
$:
vscode:
- docker:
image: docker.cnb.cool/znb/images/node:18
runner:
cpus: 8
services:
- vscode
- docker
stages:
- name: 默认安装依赖
script:
- pnpm install
v1-2025.4.1-第一次成功版(成功测试)
master:
push:
- runner:
cpus: 16
services:
- docker
- git-clone-yyds
docker:
image: docker.cnb.cool/znb/images/node:18
volumes:
- /data/.cache:copy-on-write #声明式的构建缓存
stages:
- name: 🖨️ 打印环境
script: |
node -v && npm -v && yarn -v && pnpm -v
- name: 📦️ 安装依赖
script: |
pnpm install
- name: ⚗️ 编译项目
script: |
pnpm docs:build # VitePress 专用命令
- name: 🚚 发布制品
image: tencentcom/rsync
imports: https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/blob/master/env.yaml
settings:
user: ${SSH_USER}
key: ${SSH_KEY}
port: 22
hosts:
- ${ECS_IP}
source: docs/.vitepress/dist/
target: /root/rsync/rsync-vitepress/dist/
delete: true
v2-2025.4.2-第2次改进版(成功测试)
增加条件触发。
master:
push:
- runner:
cpus: 16
services:
- docker
- git-clone-yyds
docker:
image: docker.cnb.cool/znb/images/node:18
volumes:
- /data/.cache:copy-on-write #声明式的构建缓存
stages:
- name: 🖨️ 打印环境
if: |
[ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
script: |
node -v && npm -v && yarn -v && pnpm -v
- name: 📦️ 安装依赖
if: |
[ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
script: |
pnpm install
- name: ⚗️ 编译项目
if: |
[ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
script: |
pnpm docs:build # VitePress 专用命令
- name: 🚚 发布制品
if: |
[ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
image: tencentcom/rsync
imports: https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/blob/master/env.yaml
settings:
user: ${SSH_USER}
key: ${SSH_KEY}
port: 22
hosts:
- ${ECS_IP}
source: docs/.vitepress/dist/
target: /root/rsync/rsync-vitepress/dist/
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 全部内置变量为:
打印所有变量:=======================================
[🖨️ 打印环境] CNB_TAG_IS_RELEASE=false
[🖨️ 打印环境] CNB_PULL_REQUEST_IID=
[🖨️ 打印环境] CNB_COMMENT_ID=
[🖨️ 打印环境] CNB_PULL_REQUEST_LIKE=false
[🖨️ 打印环境] CNB_PULL_REQUEST_MERGE_SHA=
[🖨️ 打印环境] CNB_GROUP_SLUG=onedayxyy
[🖨️ 打印环境] CNB_COMMIT=998925b7ecda930bc8930e4b3e432b406f9bde89
[🖨️ 打印环境] LANGUAGE=C.UTF-8
[🖨️ 打印环境] CNB_COMMITTER=hg_it_nuc
[🖨️ 打印环境] CNB_WEB_ENDPOINT=https://cnb.cool
[🖨️ 打印环境] CNB_COMMIT_MESSAGE_TITLE=commit data
[🖨️ 打印环境] CNB_PULL_REQUEST=false
[🖨️ 打印环境] CI=true
[🖨️ 打印环境] CNB_PIPELINE_KEY=pipeline-1
[🖨️ 打印环境] NODE_VERSION=18.20.8
[🖨️ 打印环境] HOSTNAME=6da14f19b39f
[🖨️ 打印环境] YARN_VERSION=1.22.22
[🖨️ 打印环境] CNB_PULL_REQUEST_ID=
[🖨️ 打印环境] CNB_REPO_NAME=vitepress-theme-teek-one-private
[🖨️ 打印环境] CNB_COMMENT_BODY=
[🖨️ 打印环境] CNB_PULL_REQUEST_SHA=
[🖨️ 打印环境] HOME=/root
[🖨️ 打印环境] CNB_IS_RETRY=false
[🖨️ 打印环境] CNB_TOKEN=****
[🖨️ 打印环境] CNB_EVENT=push
[🖨️ 打印环境] CNB_IS_NEW_BRANCH=false
[🖨️ 打印环境] CNB_BUILD_JOB_KEY=job-0
[🖨️ 打印环境] CNB_PULL_REQUEST_TARGET_SHA=
[🖨️ 打印环境] CNB_DOCKER_REGISTRY=docker.cnb.cool
[🖨️ 打印环境] CNB_ISSUE_DESCRIPTION=
[🖨️ 打印环境] CNB_ISSUE_IID=
[🖨️ 打印环境] CNB_REPO_ID=1907030244123078656
[🖨️ 打印环境] CNB_BRANCH=master
[🖨️ 打印环境] CNB_TAG_IS_PRE_RELEASE=false
[🖨️ 打印环境] CNB_TAG_RELEASE_DESC=
[🖨️ 打印环境] CNB_BUILD_USER=cnb.aYHw4hqhwFA
[🖨️ 打印环境] CNB_CPUS=16
[🖨️ 打印环境] CNB_IS_TAG=false
[🖨️ 打印环境] CNB_PULL_REQUEST_TITLE=
[🖨️ 打印环境] CNB_BUILD_USER_ID=1906923116693975040
[🖨️ 打印环境] CNB_BRANCH_SHA=998925b7ecda930bc8930e4b3e432b406f9bde89
[🖨️ 打印环境] CNB_PULL_REQUEST_REVIEWERS=
[🖨️ 打印环境] HUSKY_SKIP_INSTALL=1
[🖨️ 打印环境] CNB_ISSUE_ID=
[🖨️ 打印环境] CNB_IS_CRONEVENT=false
[🖨️ 打印环境] CNB_PIPELINE_NAME=pipeline-1
[🖨️ 打印环境] CNB_WEB_PROTOCOL=https
[🖨️ 打印环境] PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[🖨️ 打印环境] CNB_HELM_REGISTRY=helm.cnb.cool
[🖨️ 打印环境] CNB_PULL_REQUEST_BRANCH=
[🖨️ 打印环境] CNB_BEFORE_SHA=fe56e4731e85128cfc808b245f10fbb38739f2f6
[🖨️ 打印环境] CNB_BUILD_WEB_URL=https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/build/logs/cnb-0lo-1inppcdrb
[🖨️ 打印环境] CNB_REPO_SLUG_LOWERCASE=onedayxyy/vitepress-theme-teek-one-private
[🖨️ 打印环境] CNB_PULL_REQUEST_SLUG=
[🖨️ 打印环境] CNB_REVIEW_REVIEWED_BY=
[🖨️ 打印环境] CNB_BUILD_STAGE_NAME=🖨️ 打印环境
[🖨️ 打印环境] CNB_WEB_HOST=cnb.cool
[🖨️ 打印环境] CNB_BUILD_START_TIME=Tue, 01 Apr 2025 23:01:02 GMT
[🖨️ 打印环境] LANG=C.UTF-8
[🖨️ 打印环境] CNB_TAG_MESSAGE=
[🖨️ 打印环境] CNB_TOKEN_USER_NAME=cnb
[🖨️ 打印环境] CNB_BUILD_JOB_NAME=🖨️ 打印环境
[🖨️ 打印环境] CNB_REPO_URL_HTTPS=https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private.git
[🖨️ 打印环境] CNB_ISSUE_STATE=
[🖨️ 打印环境] CNB_PIPELINE_ID=cnb-0lo-1inppcdrb-001
[🖨️ 打印环境] CNB_ISSUE_TITLE=
[🖨️ 打印环境] CNB_COMMIT_MESSAGE=commit data
[🖨️ 打印环境]
[🖨️ 打印环境] CNB_COMMITTER_EMAIL=2675263825@qq.com
[🖨️ 打印环境] CNB_COMMIT_SHORT=998925b7
[🖨️ 打印环境] CNB_PULL_REQUEST_PROPOSER=
[🖨️ 打印环境] CNB_IS_NEW_BRANCH_WITH_UPDATE=false
[🖨️ 打印环境] CNB_PULL_REQUEST_REVIEW_STATE=
[🖨️ 打印环境] CNB_REPO_SLUG=onedayxyy/vitepress-theme-teek-one-private
[🖨️ 打印环境] CNB_BUILD_WORKSPACE=/workspace/
[🖨️ 打印环境] CNB_GROUP_SLUG_LOWERCASE=onedayxyy
[🖨️ 打印环境] CNB_BUILD_ID=cnb-0lo-1inppcdrb
[🖨️ 打印环境] CNB_RUNNER_IP=10.235.16.13
[🖨️ 打印环境] PWD=/workspace
[🖨️ 打印环境] CNB_TAG_RELEASE_TITLE=
[🖨️ 打印环境] CNB_EVENT_URL=https://cnb.cool/onedayxyy/vitepress-theme-teek-one-private/-/commit/998925b7ecda930bc8930e4b3e432b406f9bde89
[🖨️ 打印环境] CNB=true
[🖨️ 打印环境] CNB_REVIEW_LAST_REVIEWED_BY=
[🖨️ 打印环境] CNB_PIPELINE_DOCKER_IMAGE=docker.cnb.cool/znb/images/node:18
[🖨️ 打印环境] TZ=Asia/Shanghai
[🖨️ 打印环境] CNB_REPO_NAME_LOWERCASE=vitepress-theme-teek-one-private
[🖨️ 打印环境] CNB_PULL_REQUEST_ACTION=
[🖨️ 打印环境] CNB_API_ENDPOINT=https://api.cnb.cool
[🖨️ 打印环境] CNB_ISSUE_IS_RESOLVED=
[🖨️ 打印环境] CNB_ISSUE_OWNER=
[🖨️ 打印环境] 使用 commit 998925b7ecda930bc8930e4b3e432b406f9bde89
[🖨️ 打印环境] Author: hg_it_nuc <2675263825@qq.com>
[🖨️ 打印环境] Date: Wed Apr 2 07:01:01 2025 +0800
[🖨️ 打印环境]
[🖨️ 打印环境] commit data
[🖨️ 打印环境]
[🖨️ 打印环境] commit fe56e4731e85128cfc808b245f10fbb38739f2f6
[🖨️ 打印环境] Author: hg_it_nuc <2675263825@qq.com>
[🖨️ 打印环境] Date: Wed Apr 2 06:55:46 2025 +0800
[🖨️ 打印环境]
[🖨️ 打印环境] commit data
[🖨️ 打印环境]
[🖨️ 打印环境] commit eb8a04bd26f203463d9d19ab902aedaee19b3098
[🖨️ 打印环境] Author: hg_it_nuc <2675263825@qq.com>
[🖨️ 打印环境] 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,免费额度足够个人使用。
根据你的需求和技术栈选择最适合的平台即可!如果有其他问题,欢迎随时提问! 🚀