gitlab+gitlab-runner 实现CI/CD

一、前言

        前面我用docker 部署了gitlab 和 gitlab-runner。然后这一篇,我们就要通过gitlab 和gitlab-runner 来实现CI/CD代码自动化部署流程。

        大致流程就是,往分支发布代码,yml文件里配置不同分支执行不通脚本。

二、编写yml 文件

        首先,我们在我们的项目代码里,写一个 .gitlab-ci.yml 文件。别的大家可以自己查一下,我这里写了比较简单的。内容如下:

stages:            # 定义pipeline的全部阶段(stage)
  - develop        # 阶段名,自己定义
  - main 

test_branch:           # 作业名称,自己定义        
  stage: develop   # 阶段名,对应stages里的阶段名
  only:            # 定义分支,并为该分支单独创建工作
    - develop
  script:          # 执行脚本,可以自己写,这里只是看一下效果
    - echo 'This is develop'

master_branch:
  stage: main
  only:
    - main
  script:
    - echo 'This branch is main'

三、打开gitlab 上 Runner 的设置

        Run untagged jobs 这行一定要勾上,因为runner和job匹配的规则是,runner的tag和项目的tag要相同,而我的项目里没有标注tag。所以,如果不把这个选项加上会导致,不触发runner。

 四、测试

        分别测试,更新不同分支代码,是否会执行不同脚本。gitlab-runner在执行脚本时,用的是系统上 gitlab-runner 这个用户去执行的,所以要注意权限问题。(切记)

        我在gitlab上test项目中创建了两个分支,分别是develop(测试) 分支,main(主)分支。

      1. 更新测试分支代码

        在本地,往gitlab上推送更新的代码,然后上gitlab,在CI/CD 上我们可以看到pipeline有一次最近提交记录,分支为develop。点 Jobs可以看到 runner 脚本执行过程,从下面第三张截图上可以看到,它只执行了test_beanch工作让它执行的脚本。master_branch 这个作业的脚本没执行,因为这个作业指定的分支为mian,而mian分支没更新,所以没执行。

         2. 更新main分支

        那怎么让它执行master_branch作业的脚本呢,我们只要把develop分支合并到main分支,main分支上的代码更新后,它就会执行了。

        我们更新了develop分支后,gitlab会问你,要不要创建合并请求。然后我们点创建合并请求。然后同意就好了,详细的就不说了,直接看结果。

        我们可以看到它输出的是:This branch is main 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值