debian

Debian上如何配置GitLab的CI/CD

小樊
42
2025-09-21 21:06:29
栏目: 智能运维

1. 准备工作:确保Debian系统基础环境就绪
在配置GitLab CI/CD前,需确保Debian系统已更新且安装必要依赖,为后续步骤提供基础支持:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl

2. 安装GitLab Runner(CI/CD任务执行代理)
GitLab Runner是执行.gitlab-ci.yml中定义任务的守护进程,需先安装并注册到GitLab实例:

3. 编写核心配置:.gitlab-ci.yml文件
在项目根目录创建.gitlab-ci.yml文件,定义CI/CD流程的阶段(Stages)任务(Jobs)执行逻辑。以下是一个基础示例:

# 定义阶段执行顺序(build→test→deploy)
stages:
  - build
  - test
  - deploy

# 定义全局变量(可选,如项目名称、目录)
variables:
  PROJECT_NAME: "my-debian-app"
  PROJECT_DIR: "/opt/${PROJECT_NAME}"

# 构建阶段:编译或打包项目
build_job:
  stage: build
  script:
    - echo "Building ${PROJECT_NAME}..."
    - mkdir -p ${PROJECT_DIR}
    - cp -r * ${PROJECT_DIR}/  # 模拟复制项目文件到目标目录
  artifacts:
    paths:
      - ${PROJECT_DIR}/  # 将构建产物传递给后续阶段
    expire_in: 1 week    # 工件保留1周

# 测试阶段:运行项目测试
test_job:
  stage: test
  script:
    - echo "Running tests for ${PROJECT_NAME}..."
    - cd ${PROJECT_DIR} && echo "Test passed!"  # 模拟测试命令
  needs: ["build_job"]   # 依赖build_job成功完成

# 部署阶段:将应用部署到目标服务器
deploy_job:
  stage: deploy
  script:
    - echo "Deploying ${PROJECT_NAME} to production..."
    - scp -r ${PROJECT_DIR}/* user@remote-server:/var/www/html/  # 模拟SCP部署
  only:
    - master             # 仅master分支触发部署
  when: manual           # 手动触发(避免自动部署风险)

4. 配置高级功能(可选但常用)

5. 触发与监控CI/CD管道

注意事项

0
看了该问题的人还看了