Closed
feat: 接入 GitCode 原生 Actions 流水线 #486
aflyingtoAdd on  Jul 28Closed at  Aug 1
aflyingtoCollaborators
Jul 28 Create

背景

GitCode 已提供原生 Actions 流水线能力,GitCode CLI 也已支持 Actions v8 查询 API,但本仓库日常 CI 原先只定义在 GitHub 镜像仓。

远端验证确认 GitCode 托管 runner 不提供 Docker daemon,因此主仓原生流水线承担 Linux lint、test、build、package;GitHub 镜像继续承担 Linux/macOS/Windows 跨平台验证及 Docker 构建。

目标

  • 维护 .gitcode/workflows/ci.yml
  • 覆盖 GitCode 原生 lint、test、build、package 路径
  • 使用 GitCode 托管 Ubuntu runner 与最小只读权限
  • 使用运行时 run ID 唯一化覆盖率、Linux 二进制和 wheel 制品
  • 在 Package job 验证补全、Linux 二进制、wheel 及三个 Python 分发入口
  • 保留 GitHub Actions 的跨平台和 Docker 覆盖
  • 使用 gc actions 形成 GitCode PR 的原生 CI 证据

验收标准

  • GitCode PR 到 main 时自动触发原生 CI
  • lint、test、build、package 四个 job 定义完整并通过
  • coverage、binary、wheel 制品可上传且名称不跨 run 冲突
  • wheel 的 gc、gitcode、python -m gc_cli 三入口冒烟通过
  • 本地 YAML、测试、构建、lint 和安全检查通过
  • GitHub 镜像的 Linux/macOS/Windows 与 Docker CI 通过
  • GitCode 原生流水线产生可由 gc actions 查询的终态运行记录
likedislike
AaflyingtoCollaborators
Jul 28 Added label: scope/actionsscope/ci, status/triage,type/feature
aflyingtoCollaborators
Jul 28 Comments:

验证记录

  • 当前版本或分支: origin/main at d15755c
  • 验证命令: git ls-tree -r --name-only origin/main -- .gitcode/workflows/ci.yml
  • 实际结果: origin/main 不包含 GitCode 原生 workflow,仅存在 GitHub Actions CI
  • 结论: 需求有效,继续实现 GitCode 原生 Linux CI
likedislike
AaflyingtoCollaborators
Jul 28 Added label: status/verified
AaflyingtoCollaborators
Jul 28 Added label: status/in-progress
AaflyingtoCollaborators
Jul 28 Removed label: status/triage
AaflyingtoCollaborators
Jul 28 Removed label: status/verified
AaflyingtoCollaborators
Jul 28 Associated pull request
AaflyingtoCollaborators
Jul 28 Associated pull request
aflyingtoCollaborators
Jul 28 Comments:

GitCode 原生 Actions 已进入 main,最新提交为 c2ab924。

远端验证记录:

  • https://gitcode.com/gitcode-cli/cli/actions/runs/313bd652998b474aaa1a025b257ed9e7
  • Head SHA: 40d2aa8eb1766830730b48cd7d27ec7739644ff0
  • Workflow 语法、四个 Job 编排、托管 Runner 调度、Checkout、Go 1.22.12 初始化、release version validation 已验证通过
  • lint 和 test 均因托管 Runner 访问 proxy.golang.org:443 超时失败;build/docker 依赖 test,因此未执行
  • 已连续多次使用标准依赖源复现相同网络超时,未擅自切换镜像源

主干实现已提交,但完整成功终态仍受 GitCode 托管 Runner 网络连通性阻塞。

likedislike
aflyingtoCollaborators
Jul 29 Comments:

原生 CI 运行证据补充

  • 触发来源: PR 423,head ab44f4ffcd7ddf94a5c4fcf7039d86eca21097c7
  • Run ID: 6d923e5cb73a44af8dbd826460f47339
  • Workflow: CI,run number 9
  • Test Job: Run tests 已成功完成,go test -v -race -coverprofile=coverage.out ./... 通过
  • 失败步骤: Upload coverage(upload-artifact,name=coverage-linux,path=coverage.out)
  • 影响: Test Job 标记失败,依赖它的 Build 与 Docker Job 被 IGNORED
  • 初步判断: 失败发生在 GitCode 原生平台的 artifact 上传任务,不是测试或本 PR 业务代码失败;需要在本原生 Actions 接入需求中验证 artifact task 的兼容写法
likedislike
AaflyingtoCollaborators
Aug 1 Modify description of issue
aflyingtoCollaborators
Aug 1 Comments:

关闭说明

  • 关闭原因: 对应功能已通过 PR 合入并在主干核验
  • 关联 PR: https://gitcode.com/gitcode-cli/cli/merge_requests/420
  • 合入分支: main,合并提交 d08737c38365b2f8c2b2ed047d856ca2079d3e86
  • 验证结论: GitCode run 23 四个 job 全绿;GitHub run 30681841901 跨平台、Docker 全绿;三项独立评审 PASS
likedislike
AaflyingtoCollaborators
Aug 1 Added label: status/merged
AaflyingtoCollaborators
Aug 1 Close issue
AaflyingtoCollaborators
Aug 1 Removed label: status/in-progress