温馨提示×

debian gitlab如何集成ci

小樊
33
2026-09-11 10:21:50
栏目: 智能运维

在 Debian 上部署的 GitLab 中集成 CI(持续集成),核心是使用 GitLab CI/CD,它内置于 GitLab 中,只需要配置 Runner.gitlab-ci.yml 即可。下面按步骤说明。


一、前提条件

  • 已安装并运行 GitLab(Debian 上通过 apt 或 omnibus 安装)
  • 有管理员或项目 Maintainer 权限
  • 项目代码已托管在 GitLab 中

二、安装并注册 GitLab Runner(关键)

GitLab 本身不含执行环境,需要 Runner 来执行 CI 任务。

1. 在 Debian 上安装 Runner

# 添加 GitLab Runner 官方源
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

# 安装
sudo apt-get install gitlab-runner

2. 获取 Registration Token

  • GitLab 页面:
    • 全局:Admin → Runners
    • 项目:Settings → CI/CD → Runners

3. 注册 Runner

sudo gitlab-runner register

按提示输入:

  • GitLab URL(如 https://gitlab.example.com
  • Token
  • Runner 描述
  • 执行器(推荐 shelldocker

示例(shell):

Executor: shell

4. 启动 Runner

sudo gitlab-runner start

三、在项目中使用 CI

1. 创建 .gitlab-ci.yml

在项目根目录新建文件:

stages:
  - build
  - test

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

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

2. 提交代码触发 CI

git add .gitlab-ci.yml
git commit -m "add ci"
git push

GitLab 会自动:

  • 分配 Runner
  • 执行 pipeline
  • 显示执行结果

四、常见 Runner 执行器选择

执行器 适用场景
shell 简单、直接,适合 Debian 服务器
docker 隔离环境,推荐生产使用
kubernetes 大规模、云原生

Docker 示例注册:

Executor: docker
Default image: alpine:latest

五、权限与常见问题

Runner 无权限?

sudo usermod -aG docker gitlab-runner
sudo reboot

Pipeline 不触发?

  • 检查 Runner 是否在线
  • 检查 .gitlab-ci.yml 语法
  • 查看 CI/CD → Pipelines 日志

六、进阶建议

  • 使用 cache 加速构建
  • 使用 artifacts 传递结果
  • 使用 .gitlab-ci.yml 模板
  • 集成:
    • 单元测试
    • 代码扫描
    • 自动部署(SSH / Ansible)

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

  • GitLab 版本
  • Runner 想用 shell 还是 docker
  • 项目语言(Java / Python / Node 等)

我可以直接给你一份可用配置示例

0