跳至主要內容

GitLab流水线作业配置指南

大约 3 分钟约 783 字

GitLab流水线作业配置指南

本文是一份详细的GitLab CI/CD配置示例教程,适合你这种只熟悉GitLab代码版本管理但未接触过Pipeline功能的用户。教程从基础概念讲起,逐步带你完成一个简单的CI/CD流水线配置。

1. GitLab CI/CD基础概念简介

  • Pipeline:由多个阶段(stages)组成的自动化流程。
  • Stage(阶段):流水线中的步骤集合,阶段之间顺序执行,阶段内的作业(jobs)并行执行。
  • Job(作业):流水线的最小执行单元,定义具体执行的命令。
  • Runner:执行Job的代理程序,GitLab提供共享Runner,也可以自建Runner。

2. 准备工作

  • 你需要有一个GitLab项目(仓库)。
  • 你需要拥有该项目的Maintainer或Owner权限。
  • 确认项目中有可用的Runner(GitLab.com默认提供共享Runner,无需额外配置)。

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

这是GitLab CI/CD的配置文件,必须放在项目根目录,文件名固定为 .gitlab-ci.yml

示例1:最简单的流水线配置

test-job:
  script:
    - echo "This is my first job!"
    - date
  • test-job 是作业名称。
  • script 定义作业执行的命令,按顺序执行。
  • 提交此文件后,GitLab会自动触发流水线执行。

4. 配置多阶段流水线示例

stages:
  - build
  - test
  - deploy

build-job:
  stage: build
  script:
    - echo "Building the project..."
    - echo "Build complete."

test-job:
  stage: test
  script:
    - echo "Running tests..."
    - echo "Tests passed."

deploy-job:
  stage: deploy
  script:
    - echo "Deploying the project..."
    - echo "Deploy complete."
  environment: production
  • stages 定义流水线的阶段顺序。
  • 每个job通过 stage 指定所属阶段。
  • 阶段按顺序执行,前一阶段成功后才执行下一阶段。
  • environment 指定部署环境,GitLab UI中可视化展示。

5. 提交 .gitlab-ci.yml 文件并触发流水线

  • 在GitLab项目页面,进入 Code > Repository
  • 选择分支(如mainmaster),点击“+”新建文件。
  • 文件名填写 .gitlab-ci.yml,粘贴上述配置内容。
  • 提交文件,GitLab自动检测并启动流水线。
  • 进入 CI/CD > Pipelines 页面查看流水线状态。
  • 点击流水线编号查看各个Job的执行日志。

6. 进阶示例:构建Docker镜像并部署(简要)

stages:
  - build
  - deploy

variables:
  TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
  TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA

build:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  script:
    - docker build -t $TAG_COMMIT -t $TAG_LATEST .
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
    - docker push $TAG_COMMIT
    - docker push $TAG_LATEST

deploy:
  stage: deploy
  script:
    - ssh deployer@your_server_ip "docker pull $TAG_LATEST && docker stop old_container && docker rm old_container && docker run -d --name new_container $TAG_LATEST"
  environment: production
  • 使用Docker-in-Docker服务构建并推送镜像。
  • 通过SSH登录远程服务器,拉取镜像并重启容器完成部署。
  • 需要在GitLab项目中配置SSH私钥和服务器信息为CI/CD变量。

7. 关键点总结

  • .gitlab-ci.yml 是GitLab CI/CD的核心配置文件,必须放在项目根目录。
  • 通过定义 stagesjobs,控制流水线的执行流程。
  • GitLab Runner负责执行作业,GitLab.com默认提供共享Runner。
  • 提交配置文件后,流水线自动触发,执行结果可在GitLab界面查看。
  • 逐步增加复杂度,从简单的脚本执行到构建、测试、部署。