【实测】用土话让你明白如何做测试平台的持续部署和集成 - 4【gitlab-runner在gitlab上要如何配置】

简介: 【实测】用土话让你明白如何做测试平台的持续部署和集成 - 4【gitlab-runner在gitlab上要如何配置】

紧接上文,我们在服务器上下载并配置了gitlab-runner这个工具,并且在gitlab上项目的设置处看到亮起了绿灯:

image.png


   今天我们继续带着各种问题来思考,为什么要带着问题?因为这是在帮大家快速树立起独立思考和创新的重要步骤。


   问题1:还剩下什么没有做?

   答:我们配置好了这个gitlab-runner之后,相当于你已经找到了帮你干活的人,但是具体要干什么,你总要交代清楚吧?

   所以,我们接下来的事情就是,想办法告诉它当代码更新后,要做什么?按照我们一开始的计划,我们想让它自动去我们服务器的代码项目根目录下去执行git pull来拿到最新代码。


   问题2:我们要在哪去提前设置gitlab-runner要执行的命令?

   答:按常理说,应该是有个类似文件的东西,让我们把要执行的命令写在上面,然后gitlab-runner认识这个文件(应该需要特定文件名)。才会达到自动执行的目的。


   问题3:这个装着执行命令的文件应该起名叫什么?放在哪?在哪修改?

   答:这种时候,就不是我们瞎蒙的了,文件叫什么名这种问题很显然是人家官方规定好的,所以我们简单一百度就知道了答案;

   文件名:.gitlab-ci.yml

   文件位置:项目根目录下,和.git命令等放在一起。

       (我的项目叫for_test,点开头的文件证明是隐藏文件)

image.png

   在哪修改:既然在项目根目录,那我们可以本地修改然后git push上传,也可以在gitlab网页上在线创建和修改。

   (本地修改):

image.png

   (在线修改):    

image.png

   是的,你没看错,这个文件不需要像其他文件那样在库里修改,而直接在左侧菜单ci/cd 下的editor就可以修改,非常方便。


   问题4:这个文件的内容应该是什么?什么命令语言?

   答:文件内容应该是按照gitlab-runner官方制定的一些固定格式语法来写,不然gitlab-runner看不懂。 具体命令语言上,很显然是shell命令。当然如果你要做的事很多也复杂,更想用python的脚本语言,那么你应该提前在某个位置准备好这个.py脚本文件,然后在这个.gitlab-ci.yml 里用shell命令调用这个py文件即可:python3 xxx/xxx/xx.py

   再来看文件的具体规则,这种东西我们一百度就会有很多,官方的则更全,某些博客总结的也不错,不过对我们新手第一次常识来说还是过于复杂了,所以我这里写了个超简单的,我们先通过这个简单的写法来初步明白这个文件的格式规则:

image.png

       注意看,这个文件是靠缩进空格来分段的,目前最外层只有俩个: stages 和 test ,他们是干嘛的?可以随便起名么?

       答: 他们是固定写法,强烈建议不要随便改,当然当你学熟练了会发现很多一开始以为的固定写法都是可以设置的,只是我在你初学的时候不想让你觉得太复杂,很多问题告诉你死记硬背,你反而会觉得简单,而更有信心。

   stages 是告诉gitlab-runner要干几个大活,目前我就写了一个大活,叫test。然后下面的test是一个大活,它里面的stage就相当于名字,对外叫test。靠这个stage的值为test,上面的stages才确定是这个大活。

   那么这个大活内都要干啥呢?

   stage:test 是表明了的名字。

   only:main 是表示只监控代码分支-main,只有main的代码更新才会执行这个文件。

   script:就是我说的要在服务器上执行的一大堆shell命令了。

   tags:sss 就是让我提前设置在服务器上注册时候的那个管家,我图里叫sss,前面教程叫wqrf1 大家注意。

   了解了这个脚本的基础,我们之后就可以多写几个大活,让stages来顺序执行这些大活,比如有的是负责拉代码,有的是负责同步数据库,有的是初始化项目一些开关配置,有的是执行某个py文件来进行自测,有的是发送什么命令请求来执行自动化测试脚本等等.... 你可以给你公司产品app的项目代码设置一下,来执行你提前写好的自动化测试用例脚本。


   问题:这个文件调试和执行时机是什么?

   答:前面我们知道,这个文件当监控的分支代码或文件被改变了就会自动让gitlab-runner去执行写好的.gitlab-ci.yml文件内容。但是我们想一个事儿,就是这个文件本身也属于这个项目内的文件内容呀~ 所以就算我们其他文件都不改,只改变这个文件的内容也会触发gitlab-runner来执行。

   所以我们在gitlab网页上,在线修改.gitlab-ci.yml 然后保存,也一样可以触发才对,这样我们调试就方便了~

image.png

   注意,当你用公司的产品时,尽量单弄个分支代码来不断调试这个gitlab-runner ,千万不要在主干分支:master或main 上,不然不断的重新部署,会让公司的同事没法用主干环境正常工作了,这很重要,因为你一开始可能要调试很多次,一定会挨揍的,亲测。

   当完全调试ok了,再给改成监控主干分支。

   

   问题:这个ci/cd文件.gitlab-ci.yml 执行后的结果在哪看?

   答:在线看就行了,gitlab里:

image.png


   看上图,这里记录了每次这个文件执行的结果,有成功,也有失败,就像人生啊~

   若想看具体成功或失败的输出,来方便调试。可以直接点击passed/failed按钮进入:(也可以直接点击左侧菜单-CI/Cd-Jobs)

   

image.png

   

       点击jobs,然后再点击这个按钮,就可以看到了:

   

image.png

   看上图,那些绿色的字,是执行我们文件中设计好的命令。下面白色就是正常的输出。可以看到我打印了一句话:“开始自动部署” ,下面就真的显示了。

   然后正常的进入项目根目录,执行git pull命令,也可以正常获取最新代码和文件了。

   最后 ,自动输出了一句绿色的:job succeeded ,证明执行成功~

   失败的也会显示好红色的输出,让你明白自己菜在哪里....


   问题:有的同学发现,什么都没改,第一次可以执行成功,再次执行就会报错。

   答:这个问题我当时也遇到了,为什么第一次可以成功,之后开始失败。后来经过艰苦的查询,发现是服务器git命令工具版本太低导致,旧版本的git不支持这么新颖的插件,导致重复后缓存问题报错。

   修复的办法就是升级git。你可以直接升级,也可以卸载旧的重新下载很新的版本。这种更新问题随便百度有的是答案。

安装git 2 
#安装源
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
#安装git
yum install git
#更新git
yum update git

 

   至此,如果你很幸运成功了,那么恭喜你可以继续深造这个CI/CD了,比如用测试平台和这个联动起来,让gitlab-runner发送一条http请求给测试平台,测试平台来执行对应某测试环境的测试用例脚本,效果贼魔幻。

相关文章
|
1月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
2月前
|
关系型数据库 MySQL 测试技术
【分享】AgileTC测试用例管理平台使用分享
AgileTC 是一个脑图样式测试用例管理平台,支持用例设计、执行与团队协作,帮助测试人员高效管理测试流程。
255 116
【分享】AgileTC测试用例管理平台使用分享
|
2月前
|
人工智能 数据可视化 测试技术
AI测试平台自动遍历:低代码也能玩转全链路测试
AI测试平台的自动遍历功能,通过低代码配置实现Web和App的自动化测试。用户只需提供入口链接或安装包及简单配置,即可自动完成页面结构识别、操作验证,并生成可视化报告,大幅提升测试效率,特别适用于高频迭代项目。
|
2月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
2月前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
3月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
1月前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
154 16
|
2月前
|
人工智能 安全 API
Dify平台集成安全护栏最佳实践
Dify平台提供低代码构建AI大模型应用的解决方案,支持云服务与私有化部署。本文介绍了在工作流和Agent中集成安全护栏的最佳实践,包括插件和扩展API两种方案。插件方式适用于工作流,一键安装实现输入输出防控;扩展API方式适用于Agent和工作流私有化部署场景,通过本地服务适配安全护栏API。文中还详细说明了操作步骤、前提条件及常见问题处理方法,帮助用户快速实现内容安全控制。
|
2月前
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!
|
3月前
|
供应链 监控 搜索推荐
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
在零售行业环境剧变的背景下,传统“人找货”模式正被“货找人”取代。消费者需求日益个性化,购买路径多元化,企业亟需构建统一的指标体系,借助BI平台实现数据驱动的精细化运营。本文从指标体系构建、平台集成到会员与商品运营实践,系统梳理零售经营分析的方法论,助力企业实现敏捷决策与业务闭环。
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
下一篇
oss云网关配置