Skip to content

ci: streamline package validation workflows - #2019

Open
CYFS3 wants to merge 1 commit into
RT-Thread:masterfrom
CYFS3:ci-package-validation
Open

ci: streamline package validation workflows#2019
CYFS3 wants to merge 1 commit into
RT-Thread:masterfrom
CYFS3:ci-package-validation

Conversation

@CYFS3

@CYFS3 CYFS3 commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

变更说明

本 PR 将软件包 CI 整理为增量 PR 检查和每日全量检查两套流程,提交内容已整理为单个 commit。

运行范围

  • 所有 CI job 仅在 RT-Thread/packages 仓库上下文中执行。
  • Fork 即使收到 PR、定时或手动事件,也只会显示 skipped,不执行安装、URL 检查、编译或 Issue 写入。
  • 外部贡献者从 Fork 向主仓提交 PR 时,检查仍在 RT-Thread/packages 上正常执行。

PR 检查

  • 仅在目标为 master 的 PR 上触发。
  • 自动识别本次 PR 修改的软件包。
  • 仅检查变更软件包的 package.json 元数据、仓库 URL、版本 URL、分支或 commit SHA。
  • PR 未修改软件包时跳过 URL 检查。
  • 保留 ToolsCI,编译一次 stm32f407-atk-explorer 基础 BSP。

每日全量检查

  • 每天北京时间 00:00 运行,也支持手动触发。
  • 将全仓库软件包按工作量拆分为 8 个并行 URL/元数据检查 job。
  • 不再逐个编译全部软件包;保留一次 ToolsCI 基础 BSP 编译。
  • 定时检查失败时创建或更新 Issue,并通知 @CYFS3@Rbb666

失败信息和可靠性

  • 失败软件包会在 Actions 日志开头、error annotation 和 Step Summary 中集中显示。
  • 对 GitHub 临时 429/5xx 响应进行有限退避重试,404 不重试。
  • 严格限制 URL 为 HTTPS GitHub 地址,并避免在 URL 白名单检查前执行外部 git 命令。
  • 显式 PR 选包不会绕过重复包名或坏元数据错误。

验证

  • 23 个 Python 单元测试通过。
  • Python 语法检查通过。
  • 所有 workflow YAML 解析通过。
  • git diff --check 通过。
  • 主仓 PR 检查实际运行成功。
  • Fork PR 检查的 3 个 job 全部 skipped。
  • Fork 每日手动检查整体结论为 skipped,ToolsCI、URL 分片和 Issue 报告均无执行步骤。

@CYFS3
CYFS3 force-pushed the ci-package-validation branch from d214715 to 252ba5c Compare August 13, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant