CI/CD 搭建jenkins基础测试环境构建项目(一)

 Jenkins是一个开源的持续集成工具,可以帮助开发团队自动化构建、测试和部署他们的软件项目。通过Jenkins,开发团队可以实现快速、高效地交付软件,并及时发现和解决问题,从而提高团队的生产力和软件质量。持续集成/持续交付(CI/CD)是一种自动化的软件开发实践,它的好处包括快速反馈、降低风险、提高质量、自动化流程、增强团队协作以及提高部署频率。通过CI/CD,团队可以更快地交付软件、减少错误、提高效率,并促进团队之间的合作与沟通。这种实践在现代软件开发中具有重要的作用,是提高软件交付速度和质量的关键方法之一。

jenkinsJenkins download and deployment
mavenMaven – Download Apache Maven
gitlab

https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-16.8.2-ce.0.el8.x86_64.rpm/download.rpm

docker阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)

安装java

[root@localhost ~]# tar zxvf jdk-17_linux-x64_bin_790090.tar.gz 
[root@localhost ~]# mv jdk-17.0.10/ /usr/local/java
[root@localhost ~]# echo 'export JAVA_HOME=/usr/local/java
> export JRE_HOME=/usr/local/java/jre
> export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
> export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin' >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)

安装maven

[root@localhost ~]# tar zxvf apache-maven-3.9.6-bin.tar.gz 
[root@localhost ~]# mv apache-maven-3.9.6 /usr/local/maven
[root@localhost ~]# vim /etc/profile
> export PATH=$PATH:/usr/local/maven/bin			#最后添加一行
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mvn -v
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /usr/local/maven
Java version: 17.0.10, vendor: Oracle Corporation, runtime: /usr/local/java
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "5.14.0-162.6.1.el9_1.0.1.x86_64", arch: "amd64", family: "unix"

安装gitlab

[root@localhost ACE]# wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-16.8.2-ce.0.el8.x86_64.rpm/download.rpm			可以从这个网址下载
[root@localhost ~]# yum -y install curl openssh-server openssh-clients postfix cronie perl perl-devel autoconf libaio 	
安装依赖关系
启动服务,设置开机自启
[root@localhost ~]# systemctl restart postfix
[root@localhost ~]# systemctl enable postfix
[root@localhost ~]# rpm -ivh gitlab-ce-16.8.2-ce.0.el8.x86_64.rpm   安装
[root@localhost ~]# vim /etc/gitlab/gitlab.rb 			修改配置文件
将external_url 修改成本机http://IP
[root@localhost ~]# gitlab-ctl reconfigure		重新编译
[root@localhost ~]# grep "Password" /etc/gitlab/initial_root_password 			查看root密码
忘记密码找回;
[root@localhost ~]# gitlab-rails console
irb(main):001:0> user = User.where(id:1).first				指定用户
=> #<User id:1 @root>
irb(main):002:0> user.password="12345.com"				修改密码
=> "12345.com"
irb(main):003:0> user.save!								保存
=> true
配置邮箱(还是在配置文件内)
85:gitlab_rails['smtp_enable'] = true								开启smtp
gitlab_rails['smtp_address'] = "smtp.163.com"						smtp使用服务器的地址
gitlab_rails['smtp_port'] = 25										端口
gitlab_rails['smtp_user_name'] = "*************@163.com"				发送的用户名
gitlab_rails['smtp_password'] = "izacwsrelvqydeia"					授权码
gitlab_rails['smtp_domain'] = "163.com"								smtp服务域名
gitlab_rails['smtp_authentication'] = "login"						smtp授权信息
gitlab_rails['smtp_enable_starttls_auto'] = false                    邮箱安全加密关闭
gitlab_rails['smtp_tls'] = false
[root@localhost ~]# gitlab-ctl reconfigure
重新编写[root@localhost ~]# gitlab-rails console
irb(main):001:0> Notify.test_email('*****@163.com','lalalala','asdasdasdasd').deliver_now
发送消息

备份gitlab

[root@localhost ~]# gitlab-rake gitlab:backup:create
[root@localhost ~]# ls /var/opt/gitlab/backups/     备份到该目录下
[root@localhost ~]# gitlab-ctl stop sidekiq		停止后台服务,消息队列
ok: down: sidekiq: 0s, normally up
[root@localhost ~]# gitlab-ctl stop unicorn	停止网页
[root@localhost ~]# gitlab-rake gitlab:backup:restore BACKUP=1696840271_2023_10_09_16.2.8
输入两次yes第一次是询问删除以前缓存,第二次是询问确定该此操作么。

jenkins安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum install jenkins
[root@localhost ~]# cd /usr/share/java/
[root@localhost ~]# java -jar jenkins.war --httpPort=8090
进入ip+8090端口
按照指定路径解锁jenkins
安装指定插件
创建用户,密码,开始使用jenkins

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

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

相关文章

后端常问面经之操作系统

请简要描述线程与进程的关系,区别及优缺点&#xff1f; 本质区别&#xff1a;进程是操作系统资源分配的基本单位&#xff0c;而线程是任务调度和执行的基本单位 在开销方面&#xff1a;每个进程都有独立的代码和数据空间&#xff08;程序上下文&#xff09;&#xff0c;程序之…

计算机网络面试题二

1.什么是计算机网络拓扑结构&#xff1f;计算机网络拓扑结构有哪五种基本形式&#xff1f; 计算机网络的拓扑结构是指网络中各个结点之间相互连接的几何形式。计算机网络拓扑结构的基本形式有&#xff1a;总线型网络、环形网络、星形网络、树形网络、网状网络。 2.什么是协议…

【【嵌入式开发 Linux 常用命令系列 1.4 -- grep -Ev 反向搜索】

文章目录 grep 的反向搜索 grep 的反向搜索 如果想从文件 a 中过滤掉包含字符串 “dash” 或 “tom” 的行&#xff0c;并将剩余的行写入到文件 b&#xff0c;可以使用 grep 命令配合正则表达式。使用 grep 的 -E 选项允许你指定一个扩展的正则表达式&#xff0c;而 -v 选项使…

C# 中Linq并行查询AsParallel 方法与Stopwatch类的理解与使用

AsParallel 是 C# 中的一个方法&#xff0c;它属于 System.Linq 命名空间下的 ParallelEnumerable 类。这个方法用于启用查询的并行执行。当你对一个数据集合执行 LINQ 查询时&#xff0c;通常这些查询是按顺序执行的。但是&#xff0c;当你调用 AsParallel 方法后&#xff0c;…

sql中添加数据的命令

SQL&#xff0c;全称是结构化查询语言&#xff08;Structured Query Language&#xff09;&#xff0c;是一种特殊目的的编程语言&#xff0c;主要用于数据库查询和程序设计。它允许用户存取数据、查询、更新和管理关系数据库系统。SQL是高级的非过程化编程语言&#xff0c;允许…

详解多模态 AI

2022 年 11 月&#xff0c;OpenAI 推出了 ChatGPT。它只用了几天时间就以其前所未有的能力席卷了世界。生成式人工智能革命已经开始&#xff0c;每个人都在问同一个问题&#xff1a;下一步是什么&#xff1f; 当时&#xff0c;ChatGPT 和许多其他由大型语言模型 &#xff08;L…

Acer宏碁暗影骑士擎AN515-58笔记本电脑工厂模式原厂Win11系统ISO镜像安装包下载

宏基AN515-58原装出厂OEM预装Windows11系统工厂包&#xff0c;恢复出厂时开箱状态一模一样&#xff0c;带恢复还原功能 链接&#xff1a;https://pan.baidu.com/s/1iCVSYtList-hPqbyTyaRqQ?pwdt2gw 提取码&#xff1a;t2gw 宏基原装系统自带所有驱动、NITROSENSE风扇键盘灯…

4.2 循环语句loop,等差数列求和

汇编语言 1. 循环语句loop loop指令的格式是&#xff1a;loop 标号&#xff0c;CPU执行loop指令的时候&#xff0c;要进行两部操作 cx cx - 1;判断cx中的值&#xff0c;不为0则转至标号处执行程序&#xff0c;如果为0则向下执行 循环使用loop来实现&#xff0c;循环次数存…

一文看尽Mac上运行Windows的所有可能:虚拟机、云电脑 更多

需求背景 大学期间我一直用的是windows,经历了从wind8到wind11的时代。 21年我转型干了产品,拿着surface、Thinkpad办公,生产力跟身边MacBook的同事相比大打折扣;于是我入手了一款macbook。一用上就回不了头,苹果的妙控键盘、触摸板真的是梦幻的办公组合。我本人也没有在…

04、Lua 数据类型

Lua 数据类型 Lua 数据类型nil&#xff08;空&#xff09;boolean&#xff08;布尔&#xff09;number&#xff08;数字&#xff09;string&#xff08;字符串&#xff09;table&#xff08;表&#xff09;function&#xff08;函数&#xff09;thread&#xff08;线程&#xf…

目标跟踪研究

我以前以为是靠高帧率实现目标识别的,现在才意识到目标跟踪也扮演着重要的角色 目录 1.目标跟踪问题简述2. 目标追踪综述3.目标跟踪-匈牙利匹配4.目标追踪-距离计算5.待续1.目标跟踪问题简述 目标跟踪 要实现跟踪,也就是需要了解前后帧之间的关系,那自然需要一个队列来保存…

vue中动态路由是什么该如何实现

在 Vue 中&#xff0c;动态路由是指根据不同的参数或条件&#xff0c;生成不同的路由配置。实现动态路由可以通过以下步骤&#xff1a; 1. **定义动态路由规则**&#xff1a; - 在路由配置文件&#xff08;通常是 router/index.js&#xff09;中&#xff0c;使用路由的 pat…

Typora结合PicGo + Github搭建个人图床

目录 一 、GitHub仓库设置 1、新建仓库 2、创建Token 并复制保存 二、PicGo客户端配置 1、下载 & 安装 2、配置图床 三、Typora配置 一 、GitHub仓库设置 1、新建仓库 点击主页右上角的 号创建 New repository 填写仓库信息 2、创建Token 并复制保存 点击右上角…

神经网络深度学习梯度下降算法优化

【神经网络与深度学习】以最通俗易懂的角度解读[梯度下降法及其优化算法]&#xff0c;这一篇就足够&#xff08;很全很详细&#xff09;_梯度下降在神经网络中的作用及概念-CSDN博客 https://blog.51cto.com/u_15162069/2761936 梯度下降数学原理

JavaSE(上)-Day10

JavaSE&#xff08;上&#xff09;-Day10 多态多态中成员变量的调用多态中成员方法的调用多态的优缺点 包final关键字权限访问修饰符代码块 多态 什么是多态&#xff1a;对象的多种形态多态的前提是&#xff1a;有继承或实现关系&#xff1b;子类重写父类的方法&#xff0c;父…

QGraphicsView实现图片放大、缩小、鼠标拖动、以鼠标点放大缩小

1. 工程配置文件 pro 1 QT core gui2 3 greaterThan(QT_MAJOR_VERSION, 4): QT widgets4 5 CONFIG c116 7 # The following define makes your compiler emit warnings if you use8 # any Qt feature that has been marked deprecated (the exact warnings9 # depend…

使用免费ChatGPT提升工作效率

ChatGPT无限次数: 点击直达 智能工作利器ChatGPT&#xff1a;提升工作效率 在当今信息爆炸的时代&#xff0c;快速高效地撰写论文对于科研工作者来说至关重要。智能工具ChatGPT的出现为我们提供了强大的支持&#xff0c;它不仅能够提升工作的效率&#xff0c;还能够帮助我们更…

Oracle 使用PLSQL 导出 一个表的insert 语句

1. 使用工具 plsql 的方法,如图示 2. 操作界面(按ctrl键鼠标可多选表) 3. 然后就看到了插入语句 原文&#xff1a;https://www.cnblogs.com/jinanxiaolaohu/p/9192766.html

基于直方图相似性的图像分类算法FPGA实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 MATLAB测试结果&#xff1a; FPGA测试结果&#xff1a; 上述仿真图中&#xff0c;红色XX表示图像读取完毕。因此输出XX。当图像输出完成之后&…

Elasticsearch 索引模板、生命周期策略、节点角色

简介 索引模板可以帮助简化创建和二次配置索引的过程&#xff0c;让我们更高效地管理索引的配置和映射。 索引生命周期策略是一项有意义的功能。它通常用于管理索引和分片的热&#xff08;hot&#xff09;、温&#xff08;warm&#xff09;和冷&#xff08;cold&#xff09;数…