linux

Linux中GitLab的CI/CD流程怎样设置

小樊
46
2025-11-04 18:38:10
栏目: 智能运维

Linux环境下GitLab CI/CD流程设置指南

1. 准备工作

在开始配置前,需确保以下前提条件满足:

2. 安装GitLab Runner

GitLab Runner是执行CI/CD任务的代理,需先安装并注册到GitLab实例。

2.1 安装GitLab Runner

Ubuntu/Debian为例,通过包管理器安装:

# 添加GitLab Runner官方GPG密钥和源
curl -L --output /etc/apt/trusted.gpg.d/gitlab.asc https://packages.gitlab.com/gitlab/gitlab-runner/gpgkey
echo "deb https://packages.gitlab.com/gitlab/gitlab-runner/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab-runner.list

# 更新包列表并安装
sudo apt-get update
sudo apt-get install gitlab-runner -y

CentOS/RHEL为例,使用Yum安装:

# 添加GitLab Runner Yum源
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

# 安装GitLab Runner
sudo yum install gitlab-ci-multi-runner -y
2.2 注册GitLab Runner

执行注册命令,按提示输入GitLab实例URL和注册Token(可在项目→Settings→CI/CD→Runners中获取):

sudo gitlab-runner register
2.3 启动Runner服务
# 设置开机自启并立即启动
sudo systemctl enable gitlab-runner
sudo systemctl start gitlab-runner

验证Runner状态:

sudo gitlab-runner status

3. 创建.gitlab-ci.yml配置文件

.gitlab-ci.yml是CI/CD流程的核心配置文件,需放置在项目根目录下,定义阶段(Stages)、**任务(Jobs)**及执行逻辑。

3.1 基础配置示例

以下是一个涵盖构建→测试→部署的基础流程示例(适用于Java项目):

# 定义流水线阶段(按顺序执行)
stages:
  - build
  - test
  - deploy

# 构建任务
build_job:
  stage: build
  script:
    - echo "Building the project..."
    - ./gradlew build  # 或mvn clean package(Maven项目)
  artifacts:
    paths:
      - build/libs/*.jar  # 保存构建产物(供后续任务使用)
    expire_in: 1 hour     # 产物过期时间(可选)

# 测试任务(仅在构建成功后执行)
test_job:
  stage: test
  script:
    - echo "Running unit tests..."
    - ./gradlew test  # 或mvn test
  rules:
    - when: always      # 无论构建是否成功都执行(可根据需求调整)

# 部署任务(仅当代码推送到master分支时执行)
deploy_job:
  stage: deploy
  script:
    - echo "Deploying to production server..."
    - scp build/libs/*.jar user@production-server:/opt/app/
    - ssh user@production-server "systemctl restart my-app.service"
  only:
    - master            # 仅master分支触发
  tags:
    - deploy            # 仅匹配带deploy标签的Runner
3.2 关键配置说明

4. 配置CI/CD变量(可选但推荐)

敏感信息(如服务器密码、Docker Registry凭证)不应直接写在.gitlab-ci.yml中,需通过CI/CD变量管理。
操作步骤:

  1. 进入项目→Settings→CI/CD→Variables;
  2. 点击"Add variable",输入Key(如DEPLOY_SERVER_PASSWORD)和Value(如服务器密码);
  3. 勾选"Mask variable"(隐藏变量值)和"Protect variable"(仅受保护分支可用);
  4. .gitlab-ci.yml中通过$KEY引用变量:
    deploy_job:
      script:
        - sshpass -p "$DEPLOY_SERVER_PASSWORD" scp build/libs/*.jar user@production-server:/opt/app/
    

5. 触发CI/CD流水线

流水线触发方式有两种:

6. 查看与调试流水线

7. 进阶配置(可选)

通过以上步骤,即可在Linux环境下完成GitLab CI/CD流程的设置,实现代码的自动化构建、测试和部署。根据项目需求,可进一步扩展流程(如添加代码质量检查、自动化通知等)。

0
看了该问题的人还看了