快速搞定Gitlab持续集成配置文件.gitlab-ci.yml

概述

gitlab的持续集成功能很强大,在装好gitlab runner之后,项目根目录下上传一个.gitlab-ci.yml文件就可以启动持续集成/构建了。.gitlab-cli.yml的主要作用是配置构建的一系列任务。

有一些概念先要明白:

  • pipeline/流水线: 一般是指一次构建过程,每次构建可能包含多个任务(编译、打包、测试、部署),就像工厂的流水线;
  • job/任务:构建过程中的单个任务,如部署;
  • environment/环境:单个任务的环境标签,如可给部署任务分为不同环境(生产、测试等);

创建.gitlab-ci.yml文件

创建一个简单的配置文件,模拟一个构建过程,一般典型的构建过程有一些要求:

  • 默认每次push代码都会触发自动构建,要求此类构建自动部署到测试服务器
  • 可以手动部署到生产环境,测试环境
  • 可以回滚

.gitlab-ci.yml

stages:
  - build
  - package
  - deploy

build:
  stage: build
  tags:
    - docbuild
  script:
    - echo "=============== 开始编译任务 ==============="
    - echo "=============== 结束编译任务 ==============="

package:
  stage: package
  tags:
    - docbuild
  script:
    - echo "=============== 开始打包任务  ==============="
    - echo "=============== 结束打包任务  ==============="

deploy_test:
  stage: deploy
  tags:
    - docbuild
  script:
    - echo "=============== 自动部署到测试服  ==============="
  environment:
    name: test
    url: https://staging.example.com

deploy_test_manual:
  stage: deploy
  tags:
    - docbuild
  script:
    - echo "=============== 手动部署到测试服  ==============="
  environment:
    name: test
    url: https://staging.example.com
  when: manual

deploy_production_manual:
  stage: deploy
  tags:
    - docbuild
  script:
    - echo "=============== 手动部署到生产服  ==============="
  environment:
    name: production
    url: https://staging.example.com
  when: manual

运行

把.gitlab-cli.yml文件上传到项目的根目录下,如果已经配好了gitlab runner会立即触发自动构建。

可以在gitlab上查看流水线、任务以及环境,在环境中可以回滚到以前版本。

流水线界面列出执行过的构建,点击界面右侧红圈圈出的菜单,可以执行手动任务

任务界面

点击某个任务,进入任务详情页,可以看到任务执行时的输出

环境页面,列出了.gitlab-ci.yml配置的2个环境:test、production

点击进入某个环境的详情页,可以回滚到以前版本


评论