温馨提示×

debian gitlab怎么集成ci

小樊
33
2026-09-05 14:33:11
栏目: 智能运维

在 Debian 上部署的 GitLab 集成 CI(Continuous Integration),核心是通过 GitLab Runner 来执行的。下面按“从零到可用”的顺序说明。


一、前提条件

  • 已安装并运行 GitLab(Omnibus 或源码均可)
  • 有项目的 Maintainer / Owner 权限
  • Debian 系统(示例基于 Debian 11/12)

二、安装 GitLab Runner(Debian)

1. 添加 GitLab Runner 官方源

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash

2. 安装 Runner

sudo apt update
sudo apt install gitlab-runner -y

安装完成后,Runner 会以 gitlab-runner 用户运行。


三、注册 Runner 到 GitLab

1. 获取注册信息

在 GitLab 中:

项目 / 群组 → Settings → CI/CD → Runners → 复制 URL 和 Registration Token

2. 注册 Runner

sudo gitlab-runner register

按提示输入:

  • GitLab URL
  • Registration Token
  • Runner 描述
  • Runner tags(如:debian, docker)
  • Executor(推荐 shelldocker

示例(shell):

Executor: shell

注册成功后:

sudo gitlab-runner status

四、编写 .gitlab-ci.yml

在项目根目录创建:

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Building..."
    - make build

test_job:
  stage: test
  script:
    - echo "Testing..."
    - make test

提交后:

GitLab → CI/CD → Pipelines

即可看到任务自动执行。


五、常用 Executor 说明

1. Shell(最简单)

  • 直接在 Debian 上执行
  • 需手动安装依赖

2. Docker(推荐)

注册时选择:

Executor: docker
Default image: debian:bookworm

.gitlab-ci.yml 示例:

test:
  image: debian:bookworm
  script:
    - apt update && apt install -y gcc
    - ./run_tests.sh

六、权限与常见问题

1. 权限问题

若使用 shell:

sudo usermod -aG docker gitlab-runner
sudo systemctl restart gitlab-runner

2. Runner 不触发

检查:

  • Runner 是否 Online
  • Tag 是否匹配
  • .gitlab-ci.yml 是否存在

七、进阶(可选)

  • 使用 rules 控制流水线
  • 使用 cache 加速
  • 使用 artifacts 传递产物
  • 多 Runner 分布式部署

如果你愿意,可以告诉我:

  • 用的是 Omnibus GitLab 还是 Docker GitLab
  • 想跑 什么语言/项目(Java / Node / C++ / Python)

我可以直接给你一份可用的 .gitlab-ci.yml

0