小睿AI导航

ARTICLE DETAIL

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

GitLab可以把代码仓库、合并审核和自动化任务连接起来。本文以一个已有测试与构建脚本的小型前端项目为例,演示创建项目、推送代码、提交Merge Request,并配置最小CI/CD流水线,补充Run

🚀 AI前沿资讯 浏览 1 2026-10-30 作者 小睿AI
📝

文章正文

样式 7 内容详情排版

阅读提示当前文章有1129字,阅读完大概需要3分钟。

先理解项目、仓库与合并请求

中的项目是协作入口,包含代码仓库、成员权限、合并请求和流水线等功能。仓库存储文件及历史;提交记录一次修改;分支让不同任务独立推进;(合并请求,简称MR)用于比较源分支与目标分支,讨论修改并审核合并。

下面以一个Node.js前端项目为例。项目需有package.json、已提交的package-lock.json,以及能够执行后退出的test脚本和生成dist目录的build脚本。若实际项目不同,请调整命令与产物路径。

创建项目并推送代码

  1. 在GitLab中创建空白项目,选择所属命名空间和可见性。为了导入本地代码,先不要初始化README,避免远端已有提交。
  2. 进入本地项目目录,将node_modules、dist和本地密钥文件等加入.gitignore。
  3. 依次执行以下命令,将代码推送到主分支。

git init

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

git add .

git commit -m "Initial commit"

git branch -M main

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

git remote add origin

git push -u origin main

已有Git仓库或origin时,不要重复初始化或添加远端,先检查当前配置。SSH方式需要配置公钥;HTTPS方式按实例要求使用访问令牌等凭据,不要把令牌拼进命令并留在历史中。

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

通过分支提交Merge Request

从最新main创建任务分支,再修改文件、提交并推送:

git switch main

git pull --ff-only

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

git switch -c feature/ci-check

git add .

git commit -m "Add CI checks"

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

git push -u origin feature/ci-check

在GitLab创建MR,源分支选择feature/ci-check,目标分支选择main。写明改动目的、验证方法和风险,再邀请有权限的成员审核。后续向同一源分支推送提交,会更新该MR,不必反复新建。

添加最小CI/CD流水线

Pipeline是一次流水线运行,Job是其中执行命令的任务,Runner负责领取任务并运行。下面使用合法的行内写法:在仓库根目录新建.gitlab-ci.yml,将以下五段各作为一行保存。

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

image: node:22

stages: [test, build]

workflow: { rules: [{ if: '$CI_PIPELINE_SOURCE == "merge_request_event"' }, { if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' }] }

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

test: { stage: test, script: ['npm ci', 'npm test'] }

build: { stage: build, script: ['npm ci', 'npm run build'], artifacts: { paths: ['dist/'], expire_in: '7 days' } }

请根据项目兼容性调整Node镜像版本。此配置在MR事件或默认分支更新时创建流水线;普通功能分支尚未创建MR时不运行。测试成功后才进入构建阶段,构建结果保存为产物。两个Job分别安装依赖,因为不能假设它们共享工作目录。

GitLab怎么用?从代码仓库到CI/CD流水线的入门指南

项目必须有可用Runner,且标签、受保护设置等条件允许它接单。这里的image需要支持容器镜像的执行器,例如Docker;Shell执行器不会据此切换Node环境。npm test若默认进入监听模式,应改成项目支持的单次测试命令。提交配置前,可使用GitLab的CI配置校验功能检查语法。

检查权限、凭据与运行结果

  • 权限:检查项目成员角色,并为main设置适当的分支保护与合并权限,避免所有成员都能直接推送。具体权限以所在实例配置为准。
  • 变量与密钥:在项目CI/CD设置中管理敏感变量,按需设置掩码、隐藏及受保护选项。不要将令牌、私钥或部署密码写入仓库,也不要在日志中输出。受保护变量未必会提供给普通分支或MR流水线,配置前需核对适用条件。
  • 日志与重试:进入流水线详情,打开失败Job检查首个关键错误。Pending通常应先检查Runner是否在线及标签是否匹配;依赖或测试失败则检查锁文件、脚本和环境。临时网络问题可重试Job,代码问题应修复后重新提交。
  • 产物:在build任务页面查找产物下载入口。若没有文件,检查构建是否成功、dist路径是否正确,以及产物是否已经过期。

这条流水线完成的是自动测试和构建,不是自动部署。发布到服务器、对象存储或容器平台,仍需单独配置部署任务、目标环境、网络访问及凭据,并确认Runner具备相应能力。