GitLab与jekins结合构建持续集成(cl)环境(2)

目录

GItlab配置邮箱

绑定邮箱

创建群组

添加人员

创建一个项目

添加文件

新建分支

如何拉取代码

Git bash 演示

 Git GUI演示

安装jenkins

更改插件镜像源

配置jenkins使用gitlab更新代码

安装jekins插件

配置jenkins免密拉取gatlab代码

jenkins创建项目

将代码发布到web服务器

测试

给不同的用户分配权限

开启role

设置角色

 给lyh用户分配角色

创建角色

分配角色

分支回滚

项目合并

回滚操作


GItlab配置邮箱

#修改配置文件
vim /etc/gitlab/gitlab.rb 

#去掉注释并修改内容
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "BMEOXDBBMJGWOIHT"

#这是邮箱域名(可写可不写)
#gitlab_rails['smtp_domain'] = "example.com"

gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = true
#手动添加
gitlab_rails['gitlab_email_from'] = '[email protected]'

#重载gitlab
gitlab-ctl reconfigure

#登录控制台测试
gitlab-rails console

#往邮箱发送邮件
Notify.test_email('[email protected]','test','lyh').deliver_now

GitLab与jekins结合构建持续集成(cl)环境(2)_第1张图片

绑定邮箱

GitLab与jekins结合构建持续集成(cl)环境(2)_第2张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第3张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第4张图片

创建群组

GitLab与jekins结合构建持续集成(cl)环境(2)_第5张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第6张图片

Gitlab中的组和项目有三种访问权限:Private、Internal、Public

Private:    只有组成员才能看到
Internal:   只要登录的用户就能看到
Public:     所有人都能看到
开源项目和组设置的是Internal

群组名称随便起,但最好是英文,不然访问的时候群组URL会变成别的

随便选,最后点击创建群组

GitLab与jekins结合构建持续集成(cl)环境(2)_第7张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第8张图片

添加人员

GitLab与jekins结合构建持续集成(cl)环境(2)_第9张图片

用户名是登录时候的用户名,访问级别是根据这个人来定的,这里选的是管理员,改完点击创建即可。

GitLab与jekins结合构建持续集成(cl)环境(2)_第10张图片

 登录这个账户

GitLab与jekins结合构建持续集成(cl)环境(2)_第11张图片

 会向qq邮箱里面发送一个初始密码

GitLab与jekins结合构建持续集成(cl)环境(2)_第12张图片

点击Click here to set your password会让他设置密码,跟着引导走即可

GitLab与jekins结合构建持续集成(cl)环境(2)_第13张图片

 改完密码也会发送一个邮件

GitLab与jekins结合构建持续集成(cl)环境(2)_第14张图片

将lyh加入到project groupGitLab与jekins结合构建持续集成(cl)环境(2)_第15张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第16张图片

  角色:

Guest:        可以创建issue、发表评论,不能读写版本库
Reporter:     可以克隆代码,不能提交,QA、PM可以赋予这个权限(总监)
Developer:    可以克隆代码、开发、提交、push,RD可以赋予这个权限(开发)
Master:       可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限(项目开发头头)
Owner:        可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限(运维人员)

也可以

GitLab与jekins结合构建持续集成(cl)环境(2)_第17张图片

在这里可以设置用户最大角色,和过期时间,同时也会发送一封邮件

GitLab与jekins结合构建持续集成(cl)环境(2)_第18张图片

创建一个项目

在首页点击新建项目到下图

GitLab与jekins结合构建持续集成(cl)环境(2)_第19张图片

空白项目就是一个空文档

从模板创建就是可以选择一些已经创好的模板 

GitLab与jekins结合构建持续集成(cl)环境(2)_第20张图片

 导入就是将其他地方导入到gitlab 

GitLab与jekins结合构建持续集成(cl)环境(2)_第21张图片

 我们选择创建空文档

GitLab与jekins结合构建持续集成(cl)环境(2)_第22张图片

 项目名称最好起英文名,可见界别根据具体情况而定,然后点击创建新建项目

GitLab与jekins结合构建持续集成(cl)环境(2)_第23张图片

 使用说明:跟使用GitHub一样,需要注意的是没有在账号中新建ssh公钥之前,将无法通过ssh拉取或推送代码

添加文件

GitLab与jekins结合构建持续集成(cl)环境(2)_第24张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第25张图片

新建分支

GitLab与jekins结合构建持续集成(cl)环境(2)_第26张图片

 创建两个分支wyb和lzzGitLab与jekins结合构建持续集成(cl)环境(2)_第27张图片

 在wyb中添加文件

GitLab与jekins结合构建持续集成(cl)环境(2)_第28张图片

这个是在其他分支看不到的

GitLab与jekins结合构建持续集成(cl)环境(2)_第29张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第30张图片 但是main是他们的主分支,在main里面新建文件,在其他子分支是看得到的

如何拉取代码

 首先公司的开发肯定用的是windows系统或者Mac系统,所以需要在他们的电脑上安装一个软件叫做“Git Bash”

下载地址https://git-scm.com/download/win

 下载完之后安装

 GitLab与jekins结合构建持续集成(cl)环境(2)_第31张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第32张图片 之后一直默认到下图,选择第一个

GitLab与jekins结合构建持续集成(cl)环境(2)_第33张图片

 之后一直默认安装即可。装完之后桌面上就有Git bash了

GitLab与jekins结合构建持续集成(cl)环境(2)_第34张图片

 Git bash是命令行

Git gui是图形化

Git bash 演示

打开Git bash输入ls 就会把你桌面上的内容

GitLab与jekins结合构建持续集成(cl)环境(2)_第35张图片

  git config --global user.name "lyh",作用是声明是谁,只需要声明1次 

 git config --global user.email "[email protected]",写的是当时创用户的邮箱

GitLab与jekins结合构建持续集成(cl)环境(2)_第36张图片

这时就可以直接拉代码了,复制第二个

GitLab与jekins结合构建持续集成(cl)环境(2)_第37张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第38张图片

 会弹出这个界面,这里写的用户名和密码是登录gitlab的用户名密码

确定以后,桌面上会有一个test目录,目录里的文件就是刚刚在gitlab上创建的

GitLab与jekins结合构建持续集成(cl)环境(2)_第39张图片

修改一下内容,重新上传到gitlab,再到gitlab看看数据是否更改

Git bush上传流程

GitLab与jekins结合构建持续集成(cl)环境(2)_第40张图片

工作区到暂存区是可以撤回的,一旦发送到本地仓库后,就不可以撤回了

GitLab与jekins结合构建持续集成(cl)环境(2)_第41张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第42张图片

 可以看到gitlab中的内容已经修改了

GitLab与jekins结合构建持续集成(cl)环境(2)_第43张图片

 Git GUI演示

GitLab与jekins结合构建持续集成(cl)环境(2)_第44张图片

 source源                target是目标地址

GitLab与jekins结合构建持续集成(cl)环境(2)_第45张图片

进到里面有五个按钮,一个一个点,注意是一个一个,就OK了

linux系统的操作方法跟Git bash的操作一样

安装jenkins

首先安装jdk

#安装jdk
yum -y install java-11-openjdk

#解压
rpm -ivh jenkins-2.387.2-1.1.noarch.rpm 

#修改配置文件
vim /etc/sysconfig/jenkins 

...
JENKINS_USER="root"    #改成root
...


#启动
/etc/init.d/jenkins start

[root@localhost ~]# /etc/init.d/jenkins start
Starting jenkins (via systemctl):                          [  确定  ]

访问 jenkins服务器IP:8080 

GitLab与jekins结合构建持续集成(cl)环境(2)_第46张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第47张图片

主要把汉化包安装上

GitLab与jekins结合构建持续集成(cl)环境(2)_第48张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第49张图片

 GitLab与jekins结合构建持续集成(cl)环境(2)_第50张图片

之后一直默认就行了

GitLab与jekins结合构建持续集成(cl)环境(2)_第51张图片

更改插件镜像源

Manage jekins ---->Manage Plugins --->Advanced在最下面的升级站点改成国内的

我用的是https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

GitLab与jekins结合构建持续集成(cl)环境(2)_第52张图片

除此之外还需要修改这个文件

cd /var/lib/jenkins/updates/
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json 
sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json 

如果是手动安装插件,导致版本不匹配,则需要下载

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war

关闭jekins
然后把/usr/share/java/中的jekins.war替换掉
开启jenkins

配置jenkins使用gitlab更新代码

安装jekins插件

Manage jekins ---->Manage Plugins--->Avaiable plugins

搜索要安装的插件

Gitlab、Git、Git Clinet、Gitlab Authentication、SSH agent、Publish Over SSH

Geneic Webhook Trigger 、Build Authorization Token、Build Token、Role-based Authorization Strategy

等他下完自动重启即可 

配置jenkins免密拉取gatlab代码

[root@bogon ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NDVi5sr6a7jorx9Rvs/cG7xKrk+SGMAIyVqVSd/SRds root@bogon
The key's randomart image is:
+---[RSA 2048]----+
|o. ooo  +.=      |
|o+. o. * + +     |
|o.o   + * . E    |
|.  . + + .       |
|    o + S        |
|     = o .       |
|    +.+ o o      |
|   ..o.O . o     |
| .+++o++B.+.     |
+----[SHA256]-----+'

[root@bogon ~]# cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwAlMU1euHJwb0bbc9f0ceqjL7zTchKMkH/3AUEqZG4p6e81f
h9e0jQ5VeT7p4+zvRbN7BM8W6SlWZwuNIi/lAw/NqADdhMHZq1Q/WGzzBavvBZF4
OmGTZj++2385jRyl1V+vle2W0/g9bXM47WlKP00Rtny0D8qA5oaEXef2tTqLKqzZ
YE1fmlQyCOu6n6/CzYTJr+OOlymM06vVyl38Q7iaZIOs6vYKbC8eZv6X0N8qKtXQ
EYpHDUye1ZCtvK4QZcijsQkiVXDZdeIBz9rww2WMQ92Ks5AQtSk6Y6uAPOQU84m8
ieDEISc9W/Y3DEguEsL4KaiOquwaFzTcb2A3EwIDAQABAoIBAGyv1ocFBQIkSIp1
GLIQw2GYz3NfU7+uJfAFSicnUWiJA7G2Fu9nYkTDbBTnSrE5lGK6plGec7UbNE+1
9fb3bIJDG36OntFYdb3GPOPrJdB78xgPsSA5wZcJVRgd9ZCsOh99vH76rXbi9MFR
iVK1WNRi5jeGdNLLJhFS6O/NLZB7yNyaxokHBlULK6egYlCwVb+B5LNh3lF7v88e
1N50bK3ux0+dEyd4JNEcpZuhkeCNpESiN6S2FuBDIoF+SOlRVa/2HKQ1wr5G8Fht
Ef3bOmc3kh4o/gzQH4vZzsFkNVSFMkidlzPs2XPbokwcns7WQe7Y609QIF8ymnDw
yliGtmECgYEA/Ee+fMVEj1r6bEMcDLWPYvN7Qr4oDZmV5d9iB4w8YBuiTfjrxpKo
60jU1WvZYW6QIx9+641/gR+UBue6KTOg96NNILIw9kykpkikgcxxZJdxK88IzF4d
fKc3H/k5CJ8yTgqgzsaiU2IAaYdhTToiwx0lfeigpvKiJyAV7mef+cUCgYEAwt4o
V6pRZZLL3hpQ7AzywDOKq9+o4o7p3CkqR0poUUwzalRtq2Zw3upcldZLr6y2hUaK
EvxeghT24ij3fdRgEA32I1IzecaHd8jZ7rKD6RSAqp/gZGe8bLbyVWrlYGS5REnW
ys08vzNz3SK+opIlTVRXwUH5MVo9IMvPiXLi8vcCgYEA+yIUHrJlAGupdBIOHxyx
ougL4LHYv0kPbehD9o2EIIwBsqrDUkX2f1ld/SJCH/pm43/b4XJW5dvgiEsvBwrN
Bxb5lT2s/dHn6VvQ3yD8FA2pa9nJwV9C7S6r8lkujEWlVwi/cXdMacLZ9DL/Clh/
+EjQZJkpK2fHQTlwe4WOO50CgYAVS6Xo/qnqicJRwVp6kWet7XQIGGciay/PaYg/
RjhkOgmcYyGhC47mLYJ0tXiL+DnyEqVgMcg6OwRH7uYtEBp3Zq8xaPhLJJEFXCPE
3CliPWVaQCKLlnKXBt8wyn/Kqvc8KT2Z6BftZTgSQIvIxGPjMYZtjkInTI9FmEBT
6wQ2PQKBgQDY6nU+BVZm5wFKwFSeHQVsT7P6yZxsXzp08hYhAvKmKyhsACQVEnBO
SilPkJqpePaFOTlsxoMM9K7ZBaVIJi5iMM32MVQcrANERxRZ6xv6EFP7r9ke2VLJ
Da27rah7tCs1si70YVXTRYAJ9cR41/mv8/CFiocDWrhyGPWseCBgMg==
-----END RSA PRIVATE KEY-----

GitLab与jekins结合构建持续集成(cl)环境(2)_第53张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第54张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第55张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第56张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第57张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第58张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第59张图片

[root@bogon ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDACUxTV64cnBvRttz1/Rx6qMvvNNyEoyQf/cBQSpkbinp7zV+H17SNDlV5Punj7O9Fs3sEzxbpKVZnC40iL+UDD82oAN2EwdmrVD9YbPMFq+8FkXg6YZNmP77bfzmNHKXVX6+V7ZbT+D1tczjtaUo/TRG2fLQPyoDmhoRd5/a1OosqrNlgTV+aVDII67qfr8LNhMmv446XKYzTq9XKXfxDuJpkg6zq9gpsLx5m/pfQ3yoq1dARikcNTJ7VkK28rhBlyKOxCSJVcNl14gHP2vDDZYxD3YqzkBC1KTpjq4A85BTzibyJ4MQhJz1b9jcMSC4SwvgpqI6q7BoXNNxvYDcT root@bogon

GitLab与jekins结合构建持续集成(cl)环境(2)_第60张图片

jenkins创建项目

GitLab与jekins结合构建持续集成(cl)环境(2)_第61张图片

 GitLab与jekins结合构建持续集成(cl)环境(2)_第62张图片

 这只是一个描述信息,随便写,之后点击源码管理GitLab与jekins结合构建持续集成(cl)环境(2)_第63张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第64张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第65张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第66张图片GitLab与jekins结合构建持续集成(cl)环境(2)_第67张图片

 如果出现这样的

GitLab与jekins结合构建持续集成(cl)环境(2)_第68张图片

 就需要打开 Manage jenkins --> Configure Global Security ,找到 Git   Host Key Verification Configuration,按下图修改后保存。警告信息可以忽略

GitLab与jekins结合构建持续集成(cl)环境(2)_第69张图片

 或者改成Known hosts file就OK了GitLab与jekins结合构建持续集成(cl)环境(2)_第70张图片

 就不报错了GitLab与jekins结合构建持续集成(cl)环境(2)_第71张图片

 构建一次

GitLab与jekins结合构建持续集成(cl)环境(2)_第72张图片 在gitlab里面修改文件再重新构建,看看内容是否修改

GitLab与jekins结合构建持续集成(cl)环境(2)_第73张图片

 GitLab与jekins结合构建持续集成(cl)环境(2)_第74张图片

 

 查看内容,免密构建成功GitLab与jekins结合构建持续集成(cl)环境(2)_第75张图片 

将代码发布到web服务器

这里我开了一台docker机器模拟网站服务,nginx和apache都可以

[root@localhost ~]# docker run -itd -p 80:80 -v /var/www/html/:/usr/local/apache2/htdocs/  httpd:2.4.57 

将本地的/var/www/html/挂载到容器内部的/usr/local/apache2/htdocs/  

配置免登

[root@localhost ~]# ssh-copy-id [email protected]

写脚本

vim /root/deploy.sh

#!/bin/bash
scp /var/lib/jenkins/workspace/web-test/index.html [email protected]:/var/www/html

#将/var/lib/jenkins/workspace/web-test/index.html复制到192.168.100.10的/var/www/html目录下


#给权限
[root@localhost ~]# chmod 777 deploy.sh 

在jenkins上配置

GitLab与jekins结合构建持续集成(cl)环境(2)_第76张图片

 GitLab与jekins结合构建持续集成(cl)环境(2)_第77张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第78张图片

保存 

测试

到jenkins服务器把之前的文件全删掉

[root@localhost ~]# rm -rf /var/lib/jenkins/workspace/*

GitLab与jekins结合构建持续集成(cl)环境(2)_第79张图片

 如果报错没权限,如下图:

GitLab与jekins结合构建持续集成(cl)环境(2)_第80张图片

 则需要

#首先
vim /etc/sysconfig/jenkins 

....
JENKINS_USER="root"
JENKINS_GROUP="root"
....

#然后
vim /usr/lib/systemd/system/jenkins.service 

....
User=root
Group=root
....

systemctl daemon-reload 
systemctl restart jenkins.service 

GitLab与jekins结合构建持续集成(cl)环境(2)_第81张图片

访问网站 

给不同的用户分配权限

开启role

Manage jenkins --> Configure Global Security--->授权策略

GitLab与jekins结合构建持续集成(cl)环境(2)_第82张图片

设置角色

开启了Role-Based后,系统管理里多了个Manage and AssignRoles

GitLab与jekins结合构建持续集成(cl)环境(2)_第83张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第84张图片

 他有两个角色需要配置:一个是global roles全局角色,另一个是item roles项目角色

GitLab与jekins结合构建持续集成(cl)环境(2)_第85张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第86张图片 GitLab与jekins结合构建持续集成(cl)环境(2)_第87张图片GitLab与jekins结合构建持续集成(cl)环境(2)_第88张图片

 给lyh用户分配角色

创建角色

GitLab与jekins结合构建持续集成(cl)环境(2)_第89张图片

 添加baserole,给予权限GitLab与jekins结合构建持续集成(cl)环境(2)_第90张图片

添加role1 ,pattern里面是项目名称,再把上面的√点上,然后点击save保存

GitLab与jekins结合构建持续集成(cl)环境(2)_第91张图片

分配角色

GitLab与jekins结合构建持续集成(cl)环境(2)_第92张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第93张图片

 点击save保存,登录lyh

GitLab与jekins结合构建持续集成(cl)环境(2)_第94张图片

能够进行相应的操作

GitLab与jekins结合构建持续集成(cl)环境(2)_第95张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第96张图片

 在创建一个用户alex,在创建一个item过程省略,向上面找

GitLab与jekins结合构建持续集成(cl)环境(2)_第97张图片

 GitLab与jekins结合构建持续集成(cl)环境(2)_第98张图片

 有项目以后分配权限

GitLab与jekins结合构建持续集成(cl)环境(2)_第99张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第100张图片

 登录lyh,只能看到web-test项目

GitLab与jekins结合构建持续集成(cl)环境(2)_第101张图片登录alex,只能看到web-test项目

GitLab与jekins结合构建持续集成(cl)环境(2)_第102张图片

分支回滚

首先先说一下项目合并

#在linux上git下载
git config --global user.name "lyh"
git config --global user.email "[email protected]"
git clone http://192.168.100.5/liuyuhao/test.git
cd test

#查看所有分支,前面的*表示当前在那个分支
[root@localhost test]# git branch 
* main

#创建分支
[root@localhost test]# git branch lyh

#切换分支
[root@localhost test]# git checkout lyh
切换到分支 'lyh'

#创建并切换分支
[root@localhost test]# git checkout -b lzz
切换到一个新分支 'lzz'

#列出所有分支
[root@localhost test]# git branch 
  lyh
* lzz
  main

#在lzz分支创建一个文件,名字和内容随意
vim 123.txt

#将文件上传到暂存区--->本地仓库--->远程仓库
[root@localhost test]# git add 123.txt
[root@localhost test]# git commit -m "add 123.txt"
[lzz da2e3f1] add 123.txt
 1 file changed, 1 insertion(+)
 create mode 100644 123.txt
[root@localhost test]# git push origin lzz
Username for 'http://192.168.100.5': liuyuhao
Password for 'http://[email protected]': 
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 305 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for lzz, visit:
remote:   http://192.168.100.5/liuyuhao/test/-/merge_requests/new?merge_request%5Bsource_branch%5D=lzz
remote: 
To http://192.168.100.5/liuyuhao/test.git
   aac72a4..da2e3f1  lzz -> lzz

在gitlab仓库的项目查看

GitLab与jekins结合构建持续集成(cl)环境(2)_第103张图片GitLab与jekins结合构建持续集成(cl)环境(2)_第104张图片

项目合并

方法一:

GitLab与jekins结合构建持续集成(cl)环境(2)_第105张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第106张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第107张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第108张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第109张图片

 main主分支就有123.txt了

GitLab与jekins结合构建持续集成(cl)环境(2)_第110张图片

方法二:在linux上操作

#切换到lyh分支
[root@localhost test]# git checkout zmy
切换到分支 'zmy'

#内容随意
[root@localhost test]# vim lzz.txt

#上传
git add .
git commit  -m "add lzz.txt"
git push origin zmy

#切换至main
git checkout main 

#合并
git merge zmy

#上传
git push -u origin main

回滚操作

删除没用的文件 

GitLab与jekins结合构建持续集成(cl)环境(2)_第111张图片

 lzz里面是合并前的文件,main里面是合并后的文件。

现在网站发布的是合并后的网页(即2.0),现在2.0出现问题了,想让网站发布合并前的网站(1.0)

GitLab与jekins结合构建持续集成(cl)环境(2)_第112张图片

GitLab与jekins结合构建持续集成(cl)环境(2)_第113张图片

#在jenkins服务器上
#写脚本
vim test.sh
#!/bin/bash
cd /root
git clone -b lzz [email protected]:liuyuhao/test.git
cd /root/test
scp -r ./* [email protected]:/var/www/html

#给予权限
chmod 777 test.sh 

#手动执行
[root@localhost ~]# ./test.sh 
正克隆到 'test'...
remote: Enumerating objects: 59, done.
remote: Counting objects: 100% (39/39), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 59 (delta 5), reused 0 (delta 0), pack-reused 20
接收对象中: 100% (59/59), 7.72 KiB | 0 bytes/s, done.
处理 delta 中: 100% (7/7), done.
index.html                                                100%   16     7.2KB/s   00:00    

回滚成功!

 

你可能感兴趣的:(gitlab+jenkins,gitlab,ci/cd)