gitlab的CI/CD

一、gitlab配置流水线

在项目中设置CI/CD
gitlab的CI/CD_第1张图片

这个操作会在项目中添加一个名称为".gitlab-ci.yaml"的文件。在文件中编写流水线

二、常用参数

1.before_script

在所有任务之前执行的任务

2.variables

设置.gitlab-ci.yaml文件中使用的变量

3.stages

定义具体阶段执行的顺序

4.stage

定义具体的阶段

5.script

具体要执行的任务语句

6.when

什么时候开始执行任务

on_success:只有前面stages的所有工作成功时才执行。 这是默认值
manual:手动执行

7.only

在那个分支上执行任务

8.tags

指定调用哪个runner来执行任务

三、实例

before_script:
    - echo "开始之前的输出"
    
variables:
    ip: 1.1.1.1
    
stages:
    - install
    - deploy

步骤1:
    stage: deploy
    script:
        - echo "----$ip-----"
    only:
        - master
    tags:
        - build_test
步骤2:
    stage: install
    script:
        - echo "----这是步骤2------"
    only:
        - master
    tags:
        - build_test

1.查看流水线

只要我们在master上有新提交,就会触发流水线
gitlab的CI/CD_第2张图片

2.查看具体任务 gitlab的CI/CD_第3张图片

这里可以看到:

这里的步骤2和步骤1是和文件中定义的编写顺序是相反的。所以这说明stages字段定义了stage的执行顺序。

3.查看执行过程

四、实例2

before_script:
    - echo "开始之前的输出"
    
variables:
    ip: 1.1.1.1
    
stages:
    - 安装
    - 部署

步骤1:
    stage: 安装
    script:
        - echo "----$ip-----"
    only:
        - master
    tags:
        - build_test
步骤2:
    stage: 部署
    script:
        - echo "----这是步骤2------"
    only:
        - master
    tags:
        - build_test
    when: manual   #这里我们添加了手动触发

此时我们发现在最新的流水线中,步骤2不再是成功状态。这中状态说明需要手动执行任务
gitlab的CI/CD_第4张图片
手动触发这个任务 gitlab的CI/CD_第5张图片
执行成功 gitlab的CI/CD_第6张图片
再返回查看状态,已经变成了成功状态
gitlab的CI/CD_第7张图片

五、多分支CI/CD实例

生产环境和测试环境都需要配置CI/CD,如果我们写两个gitlab-ci.yml文件来去区分测试和生产。就会出现测试环境提交了代码合并到生产的时候会覆盖生产环境gitlab-ci.yml文件的现象。那么我就可以将生产和测试都写在一个文件中,在only字段中来区分由哪个分支提交数据来触发流水线

stages:
    - deploy
    - install
    
deploy:
    stage: deploy
    script:
        - echo "master-deploy"
    only:
        - master
    
    tags:
        - pangbb-runner

install:
    stage: install
    script:
        - echo "master-install"
    only:
        - master
    
    tags:
        - pangbb-runner

deploy-yanrong:
    stage: deploy
    script:
        - echo "yanrong-deploy"
    only:
        - yanrong
    
    tags:
        - pangbb-runner

install-yanrong:
    stage: install
    script:
        - echo "yanrong-install"
    only:
        - yanrong
    
    tags:
        - pangbb-runner
        

你可能感兴趣的:(liunx,git)