gitlab-ci-local:一条命令在本地跑通 GitLab CI,改完配置再也不用推送等结果
gitlab-ci-local一条命令在本地跑通 GitLab CI改完配置再也不用推送等结果【免费下载链接】gitlab-ci-localTired of pushing to test your .gitlab-ci.yml?项目地址: https://gitcode.com/GitHub_Trending/gi/gitlab-ci-local开场一个扎心的开发日常你改了一行.gitlab-ci.yml的拼写为了验证它能不能用不得不git commit、git push然后盯着远程流水线转上几分钟——结果红了错误信息只有一行而修复又得再推一次。来回三五趟之后一个本可以十分钟解决的小改动耗掉了大半天。这类改配置必须推送验证的循环正是 gitlab-ci-local 想要砍掉的东西它把整条 GitLab 流水线搬到你的终端里跑配置对不对、脚本能不能过几秒到几分钟内就有答案。项目定位一句话说清它是谁gitlab-ci-local 是一个命令行工具面向使用 GitLab CI/CD 的开发者让你在本地按 shell 或 docker 两种执行器模拟完整的 GitLab Runner 行为用来测试和调试.gitlab-ci.yml而不必推送到远程仓库。维度说明项目定位本地运行 GitLab CI 流水线的 CLI 工具解决的核心问题改 CI 配置只能推送远程验证、反馈慢执行方式shell 执行器 / docker 执行器双模式适用平台Linux、macOS、WindowsGit Bash安装方式apt 仓库、npm、Bun、Homebrew、AUR 均可快速上手最短路径跑起来任选一种方式装好二进制然后在任意 Git 仓库根目录执行即可# Debian/Ubuntu sudo apt-get install gitlab-ci-local # 或 npm 全局安装 npm install -g gitlab-ci-local # macOS brew install gitlab-ci-local# 在仓库根目录直接运行整条流水线 gitlab-ci-local # 加个别名以后敲 gcl 就行 echo alias gclgitlab-ci-local ~/.bashrc注意它只同步 git 已跟踪的文件所以新加的文件记得先git add否则作业里可能看不到它。核心用法跟着真实任务走任务一先看一眼流水线会跑哪些作业推送之前先用列表模式预检--list会把参与本次运行的作业以表格形式打印出来并自动过滤掉when: never的作业gitlab-ci-local --list输出包含作业名、描述、stage、when、allow_failure 和 needs 依赖一眼就能确认这次到底会执行哪些东西。想连被规则隐式排除的作业也列出来可换成--list-all需要脚本化处理时--list-csv直接给出 CSV 格式。任务二只跑其中一个作业调试某个具体脚本时把作业名直接跟在命令后面即可无需执行整条流水线# 只运行 npm-install 这一个 job gitlab-ci-local npm-install这是日常开发中最常用的一种姿势改动集中在哪个作业就单独跑哪个。任务三管理敏感变量不进代码库也不进 git把密码、token 之类的值放进变量文件工具默认读取仓库根目录下的.gitlab-ci-local-variables.yml# .gitlab-ci-local-variables.yml AUTHORIZATION_PASSWORD: djwqiod910321 DOCKER_LOGIN_PASSWORD: dij3213n123n12in3 KNOWN_HOSTS: ~/.ssh/known_hosts # 值是文件路径时会按 File 类型变量注入该文件务必加入.gitignore。如果你有多个仓库共用同一套凭据还可以在全局文件$HOME/.gitlab-ci-local/variables.yml里按 git remote 地址、group 或 global 三个层级分发变量匹配上对应远程仓库的作业才会注入。任务四用装饰器给作业加料gitlab-ci-local 支持在 YAML 注释里写特殊装饰器这些注释不影响 GitLab 本身只在本地生效。比如给作业加描述、加交互模式# Description Install npm packages npm-install: image: node script: - npm install --no-audit # Interactive interactive-shell: rules: - if: $GITLAB_CI false when: manual script: - docker run -it debian bashDescription会在--list输出里显示描述文本Interactive让作业以交互方式运行配合when: manual触发后可以在本地直接起一个带 shell 的容器排查问题。此外还有InjectSSHAgent自动加载 SSH agent和NoArtifactsToSource阻止制品回拷到源码目录。高阶技巧让效率再翻一倍默认参数固化成文件所有 CLI 选项都可以通过环境变量GCL_NEEDStrue、GCL_TIMESTAMPStrue这类或.gitlab-ci-local-env/$HOME/.gitlab-ci-local/.env文件设置默认值省得每次敲长串参数。include 缓存与强制刷新外部 include 默认只拉取一次并缓存保证离线也能跑确认要拿最新版时加--fetch-includes。shell 作业的隔离模式shell 执行器默认把制品直接写回当前目录--shell-isolation可以模拟更接近远程 Runner 的隔离行为验证 artifact 传递是否真的依赖正确。组件 inputs 的本地覆盖使用 CI/CD 组件时可用--inputs-file默认.gitlab-ci-local-inputs.yml提供输入值遇到老组件类型声明与实际值不兼容导致校验失败时--skip-input-validation可以放宽类型检查必填项与插值键仍会校验。Tab 补全一键开启gitlab-ci-local --completion ~/.bashrc作业名、参数补全都就位。原理剖析它是怎么做到的项目用 TypeScript 编写核心逻辑集中在 src/ 目录模块划分相当清晰src/parser.ts 负责解析.gitlab-ci.yml包括extends、include、rules 展开等产出一份扁平化的流水线结构src/job.ts 封装单个作业的生命周期决定用 shell 还是 docker 执行器、注入哪些环境变量、如何收集 artifactssrc/executor.ts 按 stage 和needs关系编排作业的执行顺序与并发src/variables-from-files.ts 解析项目级、用户级变量文件并按 remote 匹配分发src/validator.ts 配合从 GitLab 上游同步来的schema.json做配置校验保证你写的 YAML 在真实 GitLab 上也是合法的。测试组织在 tests/test-cases/ 下每个用例一个独立目录覆盖了缓存、artifacts、needs、parallel matrix、include 等上百种场景这也是它能持续跟上 GitLab 新特性的底气所在。避坑手册这些坑先替你踩了现象原因解决作业里看不到新建的文件只有 git 已跟踪的文件会同步进隔离作业先git add相关文件变量在作业中取不到变量文件名或层级没配对默认读.gitlab-ci-local-variables.yml用--variables-file显式指定或检查 home 级变量文件的 remote 匹配规则外部 include 内容没更新远程 include 默认只拉取一次并缓存加--fetch-includes强制重新获取自托管 GitLab 地址里带自定义端口端口类变量未按实例配置在变量文件里手动设置CI_SERVER_PORT、CI_SERVER_SHELL_SSH_PORT本地跑通的制品行为与远程不一致shell 执行器会把制品直接拷回源码目录加--shell-isolation模拟隔离或用NoArtifactsToSource精确控制怎么选它适合你吗适合你如果你日常维护.gitlab-ci.yml频繁调整 stages、rules、needs需要在推送前验证 artifacts、cache、include 这类只有真跑一遍才知道对错的机制或者团队想统一用同一份 CI 配置做本地预演替代零散的 shell 脚本和 Makefile。不适合你如果你不用 GitLab CI它并不通用行为是对齐 GitLab Runner 语义的或者需要完全复刻生产 Runner 的环境差异——它尽力模拟但本地机器与 Runner 宿主机终究不同最终结果仍要以远程流水线为准。相比推到远程看结果这一传统路径它的取舍很明确用本地的一次执行换掉远程多次失败重试等待的时间。写在最后把gitlab-ci-local装好、别名叫成gcl然后在你下一个要改 CI 配置的午后直接跑gcl --list试试——你会发现推送才能验证这件事从此可以成为历史。【免费下载链接】gitlab-ci-localTired of pushing to test your .gitlab-ci.yml?项目地址: https://gitcode.com/GitHub_Trending/gi/gitlab-ci-local创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

MySQL单表操作实战:从建表到增删改查的完整指南

MySQL单表操作实战:从建表到增删改查的完整指南

1. 为什么从单表开始:一张"小名著"人物表能解决所有入门问题1.1 单表操作是所有SQL语句的地基前阵子一位刚开始学数据库的朋友跟我诉苦:看教程看到联表查询就彻底懵了。我直接跟他说,你急什么,多表查询是后面的事&#…

2026/10/18 1:46:50 阅读更多 →
为什么rank选256?Qwen3-30B-A3B-base-mla-topk8-rank256的低秩权衡与性能取舍

为什么rank选256?Qwen3-30B-A3B-base-mla-topk8-rank256的低秩权衡与性能取舍

人工智能大模型模型优化 【免费下载链接】Qwen3-30B-A3B-base-mla-topk8-rank256 项目地址: https://ai.gitcode.com/OpenMOSS/Qwen3-30B-A3B-base-mla-topk8-rank256 点击查看 免费下载 Qwen3-30B-A3B-base-mla-topk8-rank256 是一组把 Qwen3-30B-A3B-Base 改造为…

2026/10/18 1:46:50 阅读更多 →
多用户Linux GPU服务器环境搭建:CUDA、Anaconda、PyCharm与VNC虚拟桌面共享实践

多用户Linux GPU服务器环境搭建:CUDA、Anaconda、PyCharm与VNC虚拟桌面共享实践

刚接手那台共享GPU服务器时,我的第一反应是“系统盘还能撑多久”:七个人的home目录里各装了一份Anaconda,/opt下散落着好几套CUDA Toolkit,PyCharm的快捷方式被谁改过都查不全,更别说图形界面——vnc4server还没配&…

2026/10/18 1:46:50 阅读更多 →

最新新闻

货拉拉业务Agent评测平台:面向高可靠决策的端到端测试体系

货拉拉业务Agent评测平台:面向高可靠决策的端到端测试体系

1. 为什么需要一个“货拉拉业务 Agent 评测平台”——从调度失败率跳变说起去年底,某次跨城搬家订单的履约链路中,系统连续3小时出现异常:司机接单后5分钟内取消率陡升至37%,远超日常均值8%。后台日志里没有报错,监控大…

2026/10/18 2:40:02 阅读更多 →
两万星标AI编程教程:从零到跑通大模型应用开发实战

两万星标AI编程教程:从零到跑通大模型应用开发实战

1. 从两万星标说起:一个AI编程教程的意外出圈两万颗星标,放在任何一个开源社区里都不是小数目。我最初把这个AI编程教程挂上去的时候,预期其实很低——能有个几百星、几十个issue讨论就算不错了。结果几个月过去,星标数一路爬升&a…

2026/10/18 2:40:02 阅读更多 →
内存屏障:给乱序执行立规矩

内存屏障:给乱序执行立规矩

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 2:40:02 阅读更多 →
AI编码代理实战:从任务拆解到工程交付的行动营复盘

AI编码代理实战:从任务拆解到工程交付的行动营复盘

1. 项目概述与核心思路拆解1.1 这个项目到底在做一件什么事先说结论:银河it 2026年Codex AI工程交付行动营,本质上是一个以真实工程项目交付为靶场、以Codex类AI编码代理为核心生产力工具的集中训练项目。它不教你“AI能写代码”这种概念,也不…

2026/10/18 2:40:02 阅读更多 →
原子操作与原子指令:一个承诺,多种实现

原子操作与原子指令:一个承诺,多种实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 2:40:02 阅读更多 →
基于5777张图片的垃圾检测数据集实战:六大场景与模型训练指南

基于5777张图片的垃圾检测数据集实战:六大场景与模型训练指南

垃圾检测在计算机视觉里是个看着简单、做起来相当磨人的细分方向。说它简单,是因为目标就是“找出画面里的垃圾”;说它磨人,是因为垃圾这东西没有固定形状、没有统一颜色、尺度跨度极大——一个矿泉水瓶和一个建筑垃圾堆,在特征层…

2026/10/18 2:39:02 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →