目录

gitlab cicd

cicd工作原理

./cicd工作原理.png

gitlab-runner

./gitlab_runner简介.png

./gitlab_runner类型及状态.png

使用流程

  1. 安装gitlab服务器
  2. 安装gitlab-runner
  3. 注册gitlab-runner,在这个步骤中,我们要知道执行器类型,执行器才是真正执行.gitlab-ci.yml脚本的。类型包括shell,docker,k8s等,我们使用的docker。
  4. 项目根目录下创建.gitlab-ci.yml文件

.gitlab-cli.yml

一个.gitlab-cli.yml我们可以理解为对应一个流水线,也就是pipeline,一个pipeline包含一个或多个作业(job), 每一个作业必须包含一个名称,属于一个阶段(stage),至少包含一个script,作业在特定条件下执行。

stages:
  - build
  - test

build-code-job:
  stage: build
  script:
    - echo "Check the ruby version, then build some Ruby project files:"
    - ruby -v
    - rake

test-code-job1:
  stage: test
  script:
    - echo "If the files are built successfully, test some files with one command:"
    - rake test1
  

test-code-job2:
  stage: test
  script:
    - echo "If the files are built successfully, test other files with a different command:"
    - rake test2

build 阶段的 build-code-job 作业首先运行。 它输出作业使用的 Ruby 版本,然后运行 rake 来构建项目文件。 如果此作业成功完成,则 test 阶段中的两个 test-code-job 作业将并行启动并对文件运行测试。

示例中的完整流水线由三个作业组成,分为两个阶段,build 和 test。 每次将更改推送到项目中的任何分支时,流水线都会运行。我们可以指定触发的条件必须git分支名。

除了可以指定script之外,还可以指定before-script,after-script。before-script在script在一个shell中执行,before-script失败了会导致整个作业失败,而script失败并不会影响after-script的运行。

作业(job)还可以自动tag,我们知道可以安装注册多个Runner,Runner注册期间可以指定tag,这样我们就可以指定job由哪个runner来执行了。

test-code-job1:
  stage: test
  script:
    - echo "If the files are built successfully, test some files with one command:"
    - rake test1
  tags:
    - windows