添加 Zot 镜像构建发布流水线 #14

Merged
panxiao81 merged 1 commits from feat/image-publish-pipeline into main 2026-09-16 18:12:25 +00:00
Owner

变更

  • 新增固定名 publish-images 的动态 Pod runner job
  • 合并到 main 或手工 dispatch 时构建 controller 与 runner 镜像
  • 在发布前运行 Python 测试、compileall 和 ShellCheck
  • 直接启动 runner image 内置 Docker daemon 与 Buildx
  • 通过 SPIRE Workload API 获取 aud=zot 的短期 JWT-SVID
  • 使用临时 Docker config 登录,结束后删除 JWT 与登录配置
  • 推送 commit SHA 与 main tag,并生成 provenance、SBOM 和可供 GitOps 使用的 pull digest
  • 修复 gitea-microvm-guest-runner 的 SC2086

CI identity

spiffe://ddupan.top/ci/panxiao81/gitea-dynamic-runner/publish-images

需要先合并 homelab-infra 中对应的 Zot repository policy。

验证

  • pytest: 14 passed
  • actionlint 通过(配置自定义 pod / vm labels)
  • ShellCheck 容器检查通过
  • workflow YAML 无 error
  • git diff --check 通过
## 变更 - 新增固定名 `publish-images` 的动态 Pod runner job - 合并到 main 或手工 dispatch 时构建 controller 与 runner 镜像 - 在发布前运行 Python 测试、compileall 和 ShellCheck - 直接启动 runner image 内置 Docker daemon 与 Buildx - 通过 SPIRE Workload API 获取 `aud=zot` 的短期 JWT-SVID - 使用临时 Docker config 登录,结束后删除 JWT 与登录配置 - 推送 commit SHA 与 `main` tag,并生成 provenance、SBOM 和可供 GitOps 使用的 pull digest - 修复 `gitea-microvm-guest-runner` 的 SC2086 ## CI identity `spiffe://ddupan.top/ci/panxiao81/gitea-dynamic-runner/publish-images` 需要先合并 homelab-infra 中对应的 Zot repository policy。 ## 验证 - pytest: 14 passed - actionlint 通过(配置自定义 `pod` / `vm` labels) - ShellCheck 容器检查通过 - workflow YAML 无 error - `git diff --check` 通过
panxiao81 added 1 commit 2026-09-16 18:10:18 +00:00
添加 Zot 镜像发布流水线
test / python (pull_request) Successful in 10s
test / shell (pull_request) Successful in 16s
6f149c85e2
panxiao81 merged commit 893323a89b into main 2026-09-16 18:12:25 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/gitea-dynamic-runner#14