关于 openharmony-ci
openharmony-ci 是用于检查 OpenHarmony 拉取请求 CI 结果的 Skill。其脚本可解析最新 DCP 事件并汇总各任务状态,默认仅获取失败任务的日志。
主要功能
- 01从 PR 解析 DCP 事件
- 02汇总总体及各任务状态
- 03默认获取失败任务日志
- 04支持 JSON 输出和日志下载
适用场景
- 01查看 GitCode 拉取请求的 CI 状态
- 02检查失败任务的日志和构建产物
- 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 失败。
备用方式
如果无法使用脚本,请改用手动工作流:
- 从最新的
openharmony_ci构建开始评论中提取 DCP 事件 ID。 - 查询
https://dcp.openharmony.cn/api/codecheckAccess/ci-portal/v1/event/<event_id>。 - 如果失败作业有
Artifacts,请查询https://dcp.openharmony.cn/api/dataService/ci-portal/v1/files?directoryUrl=<ArtifactsPath>。 - 从
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