gitlab cicd

news2025/1/12 6:15:43

CICD是指持续集成和部署,一般涵盖以下过程

在这里插入图片描述

常规步骤如下:

1、代码开发

2、代码提交(dev分支)

3、 持续集成自动检查和编译

        包含:1、sonar初步检查,代码规范

                   2、自动编译,代码正确性检查

                   3、单元测试,google test 执行单测案例

4、 提交代码合并请求【dev分支->master分支】

        包含:人工代码review,review通过后,方可合并代码,否则,通知提交放,修改问题代码,再重新提交review代码

5、临时文件清理任务

6、代码自动合并

7、打tag

GitLab CI/CD完整执行过程如下:

1、编写CI/CD配置文件.gitlab-ci.yml,GitLab会检测到它,配置文件里可指定可触发CI/CD的代码分支

2、在push或者merge代码到上述指定的分支,会触发CI/CD流程,就会生成一个对应的Pipeline

3、GitLab-Runner就会将代码拉进来执行Pipeline中的Job,每个Job可指定用来执行它的Runner

4、Runner会初始化Excutor,然后通过git把GitLab的代码仓库拉过来,按照.gitlab-ci.yml里定义的任务来执行

5、本项目把Runner执行后的产物通过挂载的方式,把打包后的代码挂载到指定的目录中,这样就完成了自动化部署

gitlab cicd环境搭建

1、准备一台服务器,在服务器上安装gitlab-ce

1.相关环境、依赖安装
yum -y install policycoreutils openssh-server openssh-clients postfix
yum install  policycoreutils-python
systemctl enable sshd && sudo systemctl start sshd
systemctl enable postfix && systemctl start postfix
 
2.关闭防火墙或者防火墙增加白名单
systemctl stop firewalld.service
 
3.下载软件
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm/download.rpm
 
4.开始安装
yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm
 
5.修改默认端口
cd /etc/gitlab
vi gitlab.rb
 
6.在文件中修改 external_url和nginx['listen_port']的key对应的内容,默认port被注释了
external_url 'http://10.251.63.128:80'
nginx['listen_port'] = 80
 
6.重启
gitlab-ctl reconfigure
gitlab-ctl restart
 
7.页面输入即可访问,能访问,表示gitlab-ce安装成功了
http://10.251.63.128:80

安装完成后,就可以在浏览器中打开这个链接

默认账号密码

默认账号:root

默认密码:保存在文件中,有效时间24小时

vim /etc/gitlab/initial_root_password

2、安装gitlab-runner

下载安装包
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

安装
sudo yum install gitlab-ci-multi-runner

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年,网络安全方面 5 大值得学习的编程语言

Python 到目前为止,Python 在网络安全领域一直处于领先地位。这是一种通用的服务器端脚本语言(无需编译),已经被应用到成千上万的安全项目中。你会发现绝大多数安全工具和 PoCs 都是用 Python 编写的,这样做是有充分理…

Introduction to modern Cryptography 现代密码学原理与协议第三章笔记

在第二章中讨论的安全叫信息理论安全或完美安全,因为他们的安全性是基于敌手没有足够的信息来成功地完成攻击,而不管敌手地计算能力。 计算安全比信息理论安全要稍微弱一些,也是大多数现代密码学构造方法的目标。由于完美安全所需密钥的长度过…

前任临终前想要见你最后一面,你会去吗?(feat.安全出口fm 贴心闺蜜)

点击文末“阅读原文”即可参与节目互动 特别感谢 / 深夜谈谈播客网络、阿那亚 后期 / 老段 监制 / 姝琦 运营 / 卷圈,Sand 封面 / 姝琦MidJourney 产品统筹 / bobo 场地支持 / 空岛studio 节目主播:姝琦 / 馋虫 / 薇塔 / 老段 录制时间&#xff1a…

【SpringCloud01】

SpringCloud01 1.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结 2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.导入Sql语句2.2.2.导入demo工程 2.3.实现远程调用案例2.3.1.案例需求:2.3.2.注册RestTemplate2.…

C++——函数模板与类模板

0.关注博主有更多知识 C知识合集 目录 1.泛型编程 2.函数模板 2.1函数模板实例化 2.2函数模板参数的匹配原则 3.类模板 4.模板的分离编译 1.泛型编程 实际上泛型编程的难度是比较高的,但我们泛型编程的初学者,当然要从简单的地方开始入手。 我…

重磅!OpenAI最新研究:用GPT-4解释神经元行为,网友:AI套娃?

来源 | 机器之心 这就是 GPT 的「抽象」,和人类的抽象不太一样。 虽然 ChatGPT 似乎让人类正在接近重新创造智慧,但迄今为止,我们从来就没有完全理解智能是什么,不论自然的还是人工的。 认识智慧的原理显然很有必要,如…

K8S 部署 seata

文章目录 创建 Deployment 文件创建 ConfigMap 文件创建 Service 文件运行访问高可用部署踩坑 官方文档 k8s中volumeMounts.subPath的巧妙用法 创建 Deployment 文件 deploymemt.yaml namespace:指定命名空间image:使用 1.5.2 版本的镜像ports&#xf…

加密算法和非对称加密的简单学习

加密算法和非对称加密的简单学习 前言对称加密算法DES特点:为什么不使用: 3DES(Triple DES 或者 DESede)特点:使用场景:为什么不用: AES(Advanced Encryption Standard)特…

SoLVES模型的详细使用教程

SoLVES(Social Values for Ecosystem Services)模型是由美国地质调查局落基山地理科学中心(RMGSC)和科罗拉多州立大学联合研究开发,主要用于评估生态系统服务的社会价值,能够量化美学、生物多样性、休闲生活…

鸿蒙Hi3861学习十一-Huawei LiteOS-M(内存池)

一、简介 LiteOS将内核与内存管理分开实现,操作系统内核仅规定了必要的内存管理函数原型,而不关心这些内存管理函数是如何实现的。 LiteOS内存管理模块管理系统的内存资源,包括:初始化、分配、释放。 不采用C标准库中的内存管理函…

精准锁定证件材料篡改位置,合合信息智能图像处理技术助力金融机构防范违规开户

得知帮助他人办理几张银行卡、电话卡,就能坐等“分红”,许多人怀着“吃馅饼”的心态掉入了陷阱。今年4月,海南一男子出借银行卡帮助不法分子进行电信网络诈骗,涉案资金流水近10万元,被警方抓捕。此前,西安某…

如何在VUE中使用andflow流程设计组件

andflow_js 是基于js、css、html开发的一个前端流程设计组件,目的是方便前端开发流程设计器。实现各种流程设计的样式风格,以及对设计结果的读取和显示,以便于与将设计结果提供给后端保存和执行。 由于VUE框架在许多实际项目中经常使用&…

安卓稳定性技术栈

涉及技术内容: framework java层 语言:Java 1.开机启动流程:Android 7.0平台开机启动_android7.0开机自启_jamousjang的博客-CSDN博客 Android系统启动流程解析 基于Android13的系统启动流程分析 2.Watchdog机制 3.Anr 机制 4.AMS四大…

Monte carlo 求解积分

Monte carlo 求解积分 文章目录 Monte carlo 求解积分[toc]1 单变量情形2 多变量情形 1 单变量情形 假设待求解积分形式为 θ ∫ 0 1 f ( x ) d x \theta\int_0^1 f(x) \mathrm{d} x θ∫01​f(x)dx 其中 θ \theta θ为积分值。引入随机变量 X ∼ U ( 0 , 1 ) X\sim U(0,1)…

服务攻防-应用协议-远控软件漏洞向日葵VNCTV-平台漏洞KibanaZabbix-附真实案例演示

目录 一、导图 二、远程控制-向日葵&Vnc&Teamviewer 1、向日葵 ▶漏洞利用工具下载地址: ▶实例展示: 2、Vnc ▶Vnc简介: ▶实例展示: 3、Teamviewer ▶Teamviewer简介: ▶实例展示: 三、设备…

小灰的基金,亏了67W。。。

2022年基金市场有多差?相信大家都有目共睹。小灰的基金在去年也赔得很惨,还每次写过几篇文章: 跌吧,继续跌吧,小灰的基金已亏损64万。。。 基金亏损84万,小灰反手把银行客户经理投诉了 今年是疫情结束的第一…

成为Smartbi合伙人,现金奖励可达15000元

2023年Smartbi推出合伙人计划即日起至2023年12月31日只要您成为思迈特软件合伙人推荐有效商机即有机会赢取上万元现金奖励商机奖励1000元,合同签约奖励可达15000元同时我们将为您提供全方位的支持和帮助实现共谋、共创、共赢!*点击https://www.smartbi.c…

长文多图一步步讲清楚:DDD理论、建模与代码实现全流程

欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我个人微信「java_front」一起交流学习 1 六个问题 1.1 为什么使用DDD DDD方法论核心是将问题不断分解&#xff0c…

院内导航移动导诊服务体系,院内导航怎么实现?

院内导航怎么实现?经过多年发展,医院规模愈加庞大,尤其是综合性医院,院区面积较大,门诊、医技、住院等大楼及楼区内部设计复杂,科室、诊室数量众多,对于新患者犹如进入了迷宫,客观环…

《花雕学AI》Poe:一个让你和 AI 成为朋友的平台,带你探索 ChatGPT4 和其他 八种AI 模型的奥秘

你是否曾经梦想过,能够在一个平台上,和多种不同的 AI 模型进行有趣、有用、有深度的对话,甚至还能轻松地把你的对话分享给其他人?如果你有这样的梦想,那么 Poe 一站式 AI 工具箱就是你的不二之选! Poe 是国…