大数据智能体工作台 DataBuddy 教程:Git 联动开发

在团队协作开发中,通常需要通过代码审查(Code Review)和自动化流水线来保证部署质量。本教程演示如何将 Bundle 项目与 Git 仓库联动,实现 Push 到不同分支时自动部署到对应环境。

相关产品
大数据智能体工作台 DataBuddy 产品页,含版本规格、价格与购买入口。

注意:预计用时 20 分钟。学习目标:将 Bundle 项目接入 Git 仓库,配置 CI/CD 流水线实现自动化部署。

一、场景介绍

在本教程中,你将:

1. 将 Bundle 项目初始化为 Git 仓库并配置 .gitignore

2. 配置多分支策略(dev → prod)

3. 在 CI/CD 平台配置密钥认证

4. 编写流水线配置文件(以 GitLab CI 和 GitHub Actions 为例)

5. 验证自动化部署流程

二、前提条件

·已完成 使用 Bundle 开发 教程,具备 Bundle 基础操作能力。

·已有 Git 仓库(GitHub / GitLab / 其他 Git 平台)。

·已获取腾讯云 API 密钥(SecretId + SecretKey),用于 CI/CD 流水线中的非交互式认证。

·已开通 DataBuddy Studio 功能。

注意:如需获取 API 密钥,请登录 腾讯云 CAM 控制台 创建或查看。

三、使用限制

·CI/CD 流水线中使用密钥认证方式(非交互式),不支持浏览器登录方式。

·流水线 Runner 环境需为 Linux(macOS / Windows 下安装命令不同,本教程以 Linux 为例)。

·databuddy bundle deploy -s 会将变更直接提交到调度(生产环境),请确保已在流水线中配置审批保护。

四、步骤 1:规划分支策略

本教程以 dev 和 prod 两个分支为例进行演示,分别对应开发环境和生产环境的 Target:

分支 对应 Target 用途
dev dev 开发集成,日常开发合入点
prod prod 生产环境,只接受 MR/PR 合入

注意:说明:

注意:以上分支策略仅为演示目的。实际使用中,团队可根据自身情况灵活设计。例如:每位开发者使用自己的个人分支进行开发,通过 MR/PR 合入 dev 或 prod 分支触发对应环境的部署。

五、步骤 2:初始化 Git 仓库

1. 进入 Bundle 项目目录,初始化 Git 仓库:

cd my_bundlegit init

2. 创建 .gitignore 文件,排除本地状态目录:

# DataBuddy CLI 状态目录(自动生成,包含绑定关系和本地状态,不应提交).bundle/

3. 完成首次提交:

git add .git commit -m "chore: init bundle project"git remote add origin <你的仓库地址>git push -u origin dev

注意:.bundle/ 目录包含本地绑定状态和认证缓存,必须 加入 .gitignore,不应提交到 Git 仓库。

六、步骤 3:配置密钥认证

CI/CD 流水线中无法使用浏览器交互式登录,需要通过密钥方式认证。DataBuddy CLI 通过读取 ~/.databuddycfg 配置文件获取认证信息。

七、GitLab CI

在 GitLab 项目中配置 CI/CD 变量:Settings → CI/CD → Variables ,添加以下 4 个变量:

变量名 说明 选项
WEDATA_HOST DataBuddy Workspace 地址(完整 URL) Masked
WEDATA_SECRET_ID 腾讯云 API 密钥 ID Masked
WEDATA_SECRET_KEY 腾讯云 API 密钥 Key Masked
WEDATA_REGION 地域,如 ap-beijing-fsi —

八、GitHub Actions

在 GitHub 仓库中配置 Secrets:Settings → Secrets and variables → Actions ,添加以下 4 个 Secret:

Secret 名称 说明
WEDATA_HOST DataBuddy Workspace 地址(完整 URL)
WEDATA_SECRET_ID 腾讯云 API 密钥 ID
WEDATA_SECRET_KEY 腾讯云 API 密钥 Key
WEDATA_REGION 地域,如 ap-guangzhou

注意:警告:

注意:密钥绝不能明文写入配置文件或提交到 Git 仓库。务必通过 CI/CD Variables 或 Secrets 注入。

九、GitLab CI

在仓库根目录创建 .gitlab-ci.yml:

stages: – validate – deploy# —- 全局配置 —-variables: BUNDLE_DIR: my_bundle # 修改为实际的 bundle 目录名before_script: # 安装 DataBuddy CLI(Go 二进制版本) – curl 'https://wedata3-platform-bundle-cq-1257305158.cos.ap-chongqing.myqcloud.com/bundle_sh/install.sh' | sudo sh || true – databuddy –version # 写入认证配置文件(密钥从 CI/CD Variables 注入) – | cat << EOF > "$HOME/.databuddycfg" host = ${WEDATA_HOST} secret_id = ${WEDATA_SECRET_ID} secret_key = ${WEDATA_SECRET_KEY} region = ${WEDATA_REGION} EOF – cd ${BUNDLE_DIR}# ========== dev 分支:部署到开发环境 ==========validate-dev: stage: validate script: – databuddy bundle validate -t dev rules: – if: '$CI_COMMIT_BRANCH == "dev"'deploy-dev: stage: deploy script: – databuddy bundle deploy -t dev rules: – if: '$CI_COMMIT_BRANCH == "dev"' environment: name: development# ========== prod 分支:部署到生产环境 ==========validate-prod: stage: validate script: – databuddy bundle validate -t prod rules: – if: '$CI_COMMIT_BRANCH == "prod"'deploy-prod: stage: deploy script: – databuddy bundle deploy -t prod -s rules: – if: '$CI_COMMIT_BRANCH == "prod"' environment: name: production

十、GitHub Actions

在仓库中创建 .github/workflows/deploy.yml:

name: DataBuddy Bundle CI/CDon: push: branches: [dev, prod] pull_request: branches: [prod]env: BUNDLE_DIR: my_bundle # 修改为实际的 bundle 目录名jobs: # ========== dev 分支:部署到开发环境 ========== deploy-dev: if: github.ref == 'refs/heads/dev' runs-on: ubuntu-latest environment: development steps: – uses: actions/checkout@v4 – name: Install DataBuddy CLI run: | curl 'https://wedata3-platform-bundle-cq-1257305158.cos.ap-chongqing.myqcloud.com/bundle_sh/install.sh' | sudo sh || true databuddy –version – name: Configure credentials run: | cat << EOF > "$HOME/.databuddycfg" host = ${{ secrets.WEDATA_HOST }} secret_id = ${{ secrets.WEDATA_SECRET_ID }} secret_key = ${{ secrets.WEDATA_SECRET_KEY }} region = ${{ secrets.WEDATA_REGION }} EOF – name: Validate run: | cd ${{ env.BUNDLE_DIR }} databuddy bundle validate -t dev – name: Deploy run: | cd ${{ env.BUNDLE_DIR }} databuddy bundle deploy -t dev # ========== prod 分支:部署到生产环境 ========== deploy-prod: if: github.ref == 'refs/heads/prod' runs-on: ubuntu-latest environment: production steps: – uses: actions/checkout@v4 – name: Install DataBuddy CLI run: | curl 'https://wedata3-platform-bundle-cq-1257305158.cos.ap-chongqing.myqcloud.com/bundle_sh/install.sh' | sudo sh || true databuddy –version – name: Configure credentials run: | cat << EOF > "$HOME/.databuddycfg" host = ${{ secrets.WEDATA_HOST }} secret_id = ${{ secrets.WEDATA_SECRET_ID }} secret_key = ${{ secrets.WEDATA_SECRET_KEY }} region = ${{ secrets.WEDATA_REGION }} EOF – name: Validate run: | cd ${{ env.BUNDLE_DIR }} databuddy bundle validate -t prod – name: Deploy run: | cd ${{ env.BUNDLE_DIR }} databuddy bundle deploy -t prod -s

注意:说明:

注意:建议在 GitHub 上为 production 环境配置 Required Reviewers,确保生产部署需要人工审批。

十一、步骤 5:日常开发协作流程

完成流水线配置后,团队成员日常按以下流程协作:

1. 从 dev 分支创建 feature 分支进行开发:

git checkout devgit pull origin devgit checkout -b feature/add-report-task

2. 编辑 Bundle 配置和代码文件,本地校验通过后提交:

# 本地校验databuddy bundle validate -t dev -p <profile># 提交代码git add .git commit -m "feat(tasks): add daily report task"git push origin feature/add-report-task

3. 在 Git 平台创建 Merge Request / Pull Request,合入 dev 分支。流水线自动执行 validate 和 deploy 到开发环境。

4. 在开发环境验证无误后,创建 MR 从 dev 合入 prod,经 Code Review 通过后合入。流水线自动部署到生产环境。

十二、步骤 6:验证自动化流程

完成以上配置后,执行一次端到端验证:

1. 在 feature 分支修改 Bundle 配置,推送后创建 MR 合入 dev。

2. 检查 CI/CD 流水线是否自动执行 validate + deploy-dev。

3. 在 DataBuddy 控制台的开发环境中确认工作流已更新。

4. 创建 MR 从 dev 合入 prod,确认 deploy-prod 流水线执行成功。

5. 在 DataBuddy 控制台的生产环境中确认工作流已部署且处于调度状态。

十三、流水线中 validate 失败

检查以下几点:

·确认 BUNDLE_DIR 变量与实际 Bundle 目录名一致。

·确认 ~/.databuddycfg 中的 host、secret_id、secret_key、region 四个字段均正确注入。

·确认 CI Runner 网络可访问 DataBuddy API 端点。

十四、流水线中 deploy 失败

·确认目标 Target(dev / prod)已在 databuddy.yml 中正确定义。

·确认 API 密钥对应的账号在目标 Workspace 中拥有足够权限。

十五、如何回滚

如果生产部署出现问题:

1. 使用 git revert 撤回有问题的 commit。

2. 将 revert commit 合入 prod 分支。

3. 流水线自动执行 deploy,将远端资源恢复到上一状态。

十六、相关文档

·使用 Bundle 开发

·Bundle 包定义

·Bundle 命令

·CI/CD 概述

赞 (0)
上一篇 4天前
下一篇 4天前