跳到正文
V2EX·· 3 小时前AI 评分60

Pipeline Lens:Mac 工具可在合并前模拟 GitLab CI pipeline

做了个 Mac 小工具,合 MR 之前就能看出 GitLab pipeline 会不会出问题

AI 导读

作者制作了 Mac 工具 Pipeline Lens,可在本地模拟 GitLab CI pipeline,检查改动合并后在不同分支、标签或 MR 上的执行情况。它会合并本地、跨项目及通配符 include,并显示各 job 是否运行、触发规则、未运行原因和相关变量值,也会指出 GitLab 拒绝创建 pipeline 的原因。工具免费,支持 macOS 14 及以上。

正文

做了个 Mac 小工具 Pipeline Lens ,在本地模拟 GitLab CI pipeline 。

项目稍微大一点,.gitlab-ci.yml 就会拆成一堆 include ,再加上 rules 、needs 、extends 、!reference ,改 CI 配置的时候心里很没底。MR 自己的 pipeline 推上去跑一遍就知道了,问题是它只验证 MR 自己:合进去之后 main 、release 分支、tag 上的 pipeline 会变成什么样,合之前谁也不知道。

比如给 build-api 加了个 changes: [api/**/*],想省点 CI 时间。MR 全绿,合进去之后 release 分支上 deploy-production 还 needs 它,GitLab 直接不给建 pipeline ,发版那天才发现。

Pipeline Lens 会把 include (本地、跨项目、通配符)都拉下来合并,然后模拟任意分支、tag 或 MR 的 pipeline:会跑哪些 job 、每个 job 是哪条 rule 决定的、没跑的为啥没跑(连用到的变量值都列出来),以及 GitLab 会因为什么报错拒绝建这条 pipeline 。上面那种情况,用 Config from 拿 MR 分支的配置去模拟 release 分支,合之前就能看出来。gitlab-org/gitlab 这种大规模的项目也能模拟。

免费,macOS 14+ 就能装:

有配置模拟出来跟 GitLab 实际不一样的,欢迎扔过来,我修。

来源:V2EX · v2ex.com