Gitlab-CICD初体验

背景

       公司环境搭建私有化的git仓库,使用了Gitlab,想要实现一套ci/cd的流程,即提交完成代码到仓库后,自动测试或部署,运行一条流水线去完成任务。

功能介绍

       GitLab提供持续集成服务。如果将.gitlab-ci.yml文件添加到存储库的根目录,并将GitLab项目配置为使用Runner,则每次提交或推送都会触发CI 管道。

       .gitlab-ci.yml文件告诉gitlab运行程序该怎么做。默认情况下,它运行具有三个阶段的管道:构建、测试和部署。你不需要使用所有三个阶段;没有作业的阶段将被忽略。

       大多数项目使用GitLab的CI服务来运行测试套件,以便开发人员在破坏某些内容时立即获得反馈。使用连续交付和连续部署来自动将测试代码部署到临时环境和生产环境。

测试需求

       git提交代码后,触发流程,在测试主机执行脚本,观察测试流程与返回结果。

实现方式

1.注册项目Runner

如下图所示,可以手动创建针对该git项目所使用的runner:
在这里插入图片描述

执行命令注册:

# gitlab-runner register

分别填写url、注册令牌等信息

# url、令牌等可以在上图所指位置找到,tags的名称是要之后在yml文件指定的名称

重启runner

# gitlab-runner restart

在这里插入图片描述
创建完成后,可以查看runner是否可用:

       active - Runner已启用,随时可以处理新作业

       paused - Runner已暂停,暂时不会接受新的作业
![xxx][step1-03]

2.配置yml

       配置以下内容到.gitlab-ci.yml文件,实现了将git中 C A Y S E F I L E 写 入 临 时 文 件 CAYSE_FILE写入临时文件 CAYSEFILEsh_script中,推送到$AIM_IP测试环境中执行

stages:
  - test
# 定义的任务1
job1:
  # 场景为测试执行
  stage: test
  # 所需执行的脚本
  script:
  - sudo apt-get install sshpass -y
  - echo $CAYSE_FILE 
  - echo $AIM_PASS
  - echo $AIM_IP
  - sh_script=$(mktemp XXXXXX.sh)
  - sudo cat $CAYSE_FILE > $sh_script
  - sudo sshpass -p "$AIM_PASS" scp $sh_script root@$AIM_IP:/tmp
  - sudo sshpass -p "$AIM_PASS" ssh root@$AIM_IP "chmod 755 /tmp/$sh_script"
  - sudo sshpass -p "$AIM_PASS" ssh root@$AIM_IP "bash /tmp/$sh_script"
  only:
  - master
  tags:
  - test_hu

       按照以下内容,可以将已于替换的信息配置成变量,在yml文件中写入
![xxx][step1-04]

3.触发流程

       之后在每次提交代码后,自动触发cicd流程,完成对代码的测试部署
![xxx][step1-05]

       在成功执行完成后,可以在job任务中查看编排的yml文件的流程,查看到测试代码的执行信息
![xxx][step1-06]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值