mcpField
O
openharmony-ci

openharmony-ci

github.com/openharmonyinsight云与 DevOps3552 次安装11 周前更新
代码仓库

关于 openharmony-ci

openharmony-ci 是用于检查 OpenHarmony 拉取请求 CI 结果的 Skill。其脚本可解析最新 DCP 事件并汇总各任务状态,默认仅获取失败任务的日志。

主要功能

  1. 01从 PR 解析 DCP 事件
  2. 02汇总总体及各任务状态
  3. 03默认获取失败任务日志
  4. 04支持 JSON 输出和日志下载

适用场景

  1. 01查看 GitCode 拉取请求的 CI 状态
  2. 02检查失败任务的日志和构建产物
  3. 03生成仅含状态或机器可读的报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openharmonyinsight/openharmony-skills --skill openharmony-ci

安装后在 Claude Code 中输入/openharmony-ci确认已加载。

附带文件agents/openai.yamlscripts/openharmony_ci.py

详细介绍

OpenHarmony CI

概览

请先使用随附脚本。它会解析 OpenHarmony PR 中最新的 DCP 事件,汇总各作业的 CI 状态,并且仅在有作业失败时获取日志,除非另有明确要求。

权限预检

  • 默认将此工作流视为需要网络。
  • 对于 --pr、--pr-url、--event-id、制品路径或 CI 日志 URL,在运行随附脚本之前,请先申请网络权限。
  • 如有帮助,请在权限申请中说明可能访问的端点:通过 oh-gc 访问 GitCode、dcp.openharmony.cn 和 cidownload.openharmony.cn。
  • 不要故意先运行一次来确认是否需要网络。根据工作流本身,通常可以预料运行会失败。

首选方式

运行随附脚本:

python3 scripts/openharmony_ci.py --pr <pr_number> --repo <repo>

默认情况下,脚本会为 oh-gc 设置 XDG_CACHE_HOME=/tmp/openharmony-ci-cache,避免它在受沙箱限制的环境中尝试写入 ~/.cache。如果你需要使用其他缓存位置,请在调用脚本前设置 XDG_CACHE_HOME,脚本会使用该设置。

支持的输入:

  • --pr <number>
  • --pr-url <gitcode_pr_url>
  • --event-id <dcp_event_id>

实用标志:

  • --log-mode auto 仅获取失败作业的日志。这是默认模式,应作为常规模式使用。
  • --log-mode never 仅查看状态。
  • --log-mode always 获取所有提供制品或日志链接的作业的日志。
  • --json 输出机器可读内容。
  • --download-dir <dir> 将下载的日志压缩包或文件保存到本地。

注意事项

  • 如果任务从 GitCode PR 开始,优先使用 --pr 或 --pr-url。
  • 脚本会使用 oh-gc 读取 openharmony_ci 评论,提取最新的 DCP 事件 ID,然后查询 DCP API。
  • 在沙箱或受限环境中,由于首选方式依赖外部服务,请在调用脚本前申请网络访问权限。
  • 在受限环境中,优先使用随附脚本,而非直接调用 oh-gc,因为脚本已将 oh-gc 缓存重定向到可写的临时目录。
  • 根据 DCP 事件数据判断通过或失败,不要只看标签。
  • 如果有多个失败作业,请全部报告。
  • 有开始时间但没有结束结果的作业应视为 running,而非失败。
  • 如果作业失败,请自动跟进制品列表以获取日志。build.log 可能会重定向到另一个 URL,而 build.log.zip 实际上可能是 tar 归档文件。
  • 在最终答复中,同时报告 DCP 的 overall 结果和各作业的失败情况。如果 overall=success,但某些作业标记为 skip 或 failed,请明确说明,而不要将其简化成单一结论。
  • 如果失败作业显示 skip build 或类似原因,请原样包含该原因;除非 DCP 的 overall 结果也为失败,否则不要暗示整个 PR 失败。

备用方式

如果无法使用脚本,请改用手动工作流:

  1. 从最新的 openharmony_ci 构建开始评论中提取 DCP 事件 ID。
  2. 查询 https://dcp.openharmony.cn/api/codecheckAccess/ci-portal/v1/event/<event_id>。
  3. 如果失败作业有 Artifacts,请查询 https://dcp.openharmony.cn/api/dataService/ci-portal/v1/files?directoryUrl=<ArtifactsPath>。
  4. 从 https://cidownload.openharmony.cn/<path> 下载所选日志。

快速示例

python3 scripts/openharmony_ci.py --pr 82764 --repo openharmony/arkui_ace_engine
python3 scripts/openharmony_ci.py --pr-url 'https://gitcode.com/openharmony/arkui_ace_engine/pull/82764' --json
python3 scripts/openharmony_ci.py --event-id 69c51ede64650f998b1d01a4 --log-mode auto
XDG_CACHE_HOME=/tmp/custom-oh-gc-cache python3 scripts/openharmony_ci.py --pr 82764 --repo openharmony/arkui_ace_engine

评论

支持 Markdown