这是一个基于 PyWebIO 的Web界面工具,旨在简化与CNB构建平台的交互,实现自动化触发、监控和管理构建流程。

确保您的环境中已安装 Python 以及 uv。
项目推荐使用 uv 作为包管理工具。您可以通过以下命令安装项目及其所有依赖项:
pip install uv
uv sync
这会自动从 pyproject.toml 文件中读取并安装所需的库。
打开 cnb_build_platform.py 文件,找到顶部的用户配置区域,并填入您的个人信息:
# ===============================================================
# 用户配置区域
# 请在这里填写您的CNB API访问令牌和仓库路径
# ===============================================================
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN" # 在这里替换为你的访问令牌
REPO_PATH = "username/repo-name" # 在这里替换为你的仓库路径, 例如: "username/repo-name"
PIPELINE_NAME = "api_trigger_build" # 在这里替换为你的流水线名称, 例如: "api_trigger_build"
BUILD_ENV = {"buildtrigger": "web_ui"} # 在这里替换为触发时需要传入的环境变量
ARTIFACT_NAME = "trigger.tar.gz" # 在这里替换为你的附件名称, 例如: "trigger.tar.gz"
# ===============================================================
ACCESS_TOKEN: 您的CNB平台API访问令牌。REPO_PATH: 您的代码仓库路径。PIPELINE_NAME: 您要触发的流水线名称。BUILD_ENV: 触发构建时需要传入的环境变量。ARTIFACT_NAME: 您在 .cnb.yml 中定义的附件名称,用于生成下载链接。除了配置脚本,您还需要在您的代码仓库根目录下创建一个 .cnb.yml 文件,用于定义构建流水线。
重要提示: 为了能够被此工具通过API触发,您的工作流(流水线)名称 必须 以 api_trigger_ 开头。
下面是一个 .cnb.yml 的示例:
main:
api_trigger_build:
- docker:
image: node:22 # 流水线执行环境
stages:
- name: build
script: |
echo "start build..."
echo "$buildtrigger" > trigger.txt
tar -czvf trigger.tar.gz trigger.txt
- name: 上传附件
image: cnbcool/attachments:latest
settings:
attachments:
- ./trigger.tar.gz
在这个例子中,流水线名称是 api_trigger_build,符合API触发的要求。您需要将脚本配置中的 PIPELINE_NAME 设置为 api_trigger_build。
配置完成后,直接运行主脚本即可启动Web服务:
python cnb_build_platform.py
服务启动后,您会看到以下提示:
🚀 启动 CNB构建平台Web界面... 📍 访问地址: http://localhost:9004 🛑 按 Ctrl+C 停止服务
现在,您可以通过浏览器访问 http://localhost:9004 来使用本工具。
本项目基于 MIT 许可证开源。