Skip to content

feat: add organization workflow templates - #1

Draft
spencercjh wants to merge 7 commits into
dynamia-ai:mainfrom
spencercjh:caitlin/workflow-templates
Draft

feat: add organization workflow templates#1
spencercjh wants to merge 7 commits into
dynamia-ai:mainfrom
spencercjh:caitlin/workflow-templates

Conversation

@spencercjh

@spencercjh spencercjh commented Aug 4, 2026

Copy link
Copy Markdown
Member

当前状态

Draft。六类公开 Workflow Template 与三组可复制的 Makefile example 已完成实现和交叉复审。Protobuf CI 按当前要求暂不纳入本 PR,且没有相关文件改动。

设计合同

  • Go CI、Helm Chart CI、Build Image 与 Build Helm Chart 使用 job 级 dorny/paths-filter@v4,并保留始终出现、失败时关闭的唯一终态检查。
  • YAML 负责 GitHub 事件、工具环境、artifact、发布编排和终态;项目验证与构建语义通过仓库本地 Make 入口复用。
  • Go example 提供 make ci、修改型 make fmt、非修改型 fmt-check、vet、lint、race test、coverage 和 build;同时提供 golangci-lint v2 示例配置,启用 gofmtgoimports
  • Helm example 的 verify-helm-chart 只包含三类基础行为:重新生成 README/schema 并要求无 Git diff、执行基础 helm lint、成功执行一次 helm template。依赖准备和打包由 Build/Release Workflow 在调用该入口前后完成。
  • Image example 提供通用单平台 build-image,以及便于本地使用的 build-image-amd64build-image-arm64。Build Image Workflow 调用 make build-image,再检查架构与 OCI 标签并导出 tar;不再保留通用 verify-image 或强制 smoke 合同。
  • Build Helm Chart 只验证、核对 package identity 并上传一天期 .tgz,没有 registry 或 Release 副作用。
  • Release Image 只接受稳定 vX.Y.Z tag,发布 linux/amd64linux/arm64 到 GHCR;写入前拒绝 Release/image tag 碰撞,写入后核对 index digest 与两个平台,再创建包含 image@digest 的 GitHub Release。
  • Release Helm Chart 只监听默认分支中目标 Chart.yaml 路径的 push;触发后比较精确的前后版本,版本未变跳过,首次与严格递增自动发布,同一 .tgz 用于 GHCR OCI 与非 Latest 的 GitHub Release。

工具版本

  • actions/checkout@v7actions/upload-artifact@v7dorny/paths-filter@v4
  • Docker login/setup-qemu/setup-buildx v4、metadata v6、build-push v7
  • Helm v4.2.3、helm-docs v1.14.2、schema plugin v2.5.0
  • golangci-lint v2.12.2、softprops/action-gh-release v3

上述 major/tag 均已对照 2026-08-04 的官方最新稳定 Release;没有加入完整 SHA 固定或额外治理框架。

验证

  • 六份 Workflow 通过 actionlint v1.7.12;六组 metadata JSON、file pattern、中文技术文档和 diff 检查通过。
  • Go sample config 通过 golangci-lint v2.12.2 配置校验,且仅启用预期的 gofmtgoimports formatter;格式负例按预期由 fmt-check 拒绝,经 make fmt 修复后通过。
  • Go example 在最小真实模块上以示例配置全链路通过;在 Metering 隔离 worktree 中以其仓库配置通过完整 make cistandard 基线可能揭示旧仓库已有 lint 问题,复制后应显式调整规则,而不是静默放宽模板。
  • Helm example 在 Metering 隔离 worktree 中使用 Helm v4.2.3、helm-docs v1.14.2、schema v2.5.0 完成生成物、基础 lint 与 template 检查,工作树保持干净;生成物漂移与非法渲染参数负例均会失败。
  • Build/Release Helm 的 dependency build → verify → package 顺序在 Kantaloupe 真实依赖 Chart 上通过;项目专属 Helm repository 注册仍由目标仓库配置。
  • Image Make 目标的 amd64/arm64 平台、tag 后缀、OCI label、--load 与无 --push 合同通过展开检查;Build Image 的相关/无关/失败终态矩阵通过。
  • 当前节点没有 Docker CLI/daemon,因此未伪装执行本地镜像构建或真实发布;本 PR 未创建 tag、Release 或 package。
  • 当前提交 b6780de08828645d526dce42b51b6e0406a4cc9c 具有有效 GPG 签名与 DCO sign-off。

Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3432559a-9be7-4508-852f-3d1b3ff76ea0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
Signed-off-by: jiahao.cai <jiahao.cai@dynamia.ai>
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