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 。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitLab-RunnerGitLab提供的一个开源工具,可以用于在GitLab上运行CI/CD任务。通过GitLab-Runner,可以方便地实现自动化的构建、测试、集成和部署等任务。 下面是一些使用GitLab-Runner打造锋利的CI/CD的方法: 1. GitLab-Runner安装和配置:首先需要安装GitLab-Runner,并将其配置到GitLab服务器上。可以通过Docker容器、二进制包或源码编译的方式安装GitLab-Runner,然后在GitLab服务器上注册Runner,并设置Runner的执行环境和权限等参数。 2. 编写CI/CD脚本:在GitLab上创建项目,并在项目中编写CI/CD脚本,定义任务的执行流程和步骤。可以使用GitLab提供的CI/CD工具和插件,也可以使用第三方工具和脚本库。 3. 构建、测试和集成:通过GitLab-Runner执行CI/CD任务,自动化构建、测试和集成代码,并生成测试报告和代码覆盖率报告等文档。可以使用各种编程语言和框架,如Java、Python、Ruby、Node.js等。 4. 部署和发布:通过GitLab-Runner将代码部署到目标服务器上,并执行自动化发布流程。可以使用容器化技术、配置管理工具、自动化部署工具等实现高效、可靠的部署和发布。 5. 监控和反馈:通过GitLab的监控和反馈机制,及时发现和解决CI/CD任务中的问题和错误,并持续优化任务的执行效率和稳定性。可以使用各种监控工具和日志分析工具,如Prometheus、Grafana、ELK等。 总之,使用GitLab-Runner打造锋利的CI/CD,可以提高开发和运维的效率和质量,降低项目的风险和成本,实现持续交付和快速迭代的目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值