Git+Jenkins自动化部署

Git+Jenkins自动化部署
在只有内网的环境中,如果要使用Git管理代码,需要在本地机器上搭建一个Git服务器用于管理代码。
一.搭建Git服务器
需要下载以下内容:
1.java JDK 下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
关于java JDK怎么安装,这里就不详细讲了,基本上就是下载完以后,下一步下一步
2.gitblit 下载地址:http://www.gitblit.com/
在这里插入图片描述

我们是要在windows平台搭建gitblit服务器所以下载第一个
下载完成以后将下载下来的压缩文件解压就可以了,不需要安装
在这里插入图片描述

3.在脚本中需要使用Git命令,因此需要安装Git
下载地址:https://git-scm.com/downloads
在这里插入图片描述
在这里插入图片描述

可以根据自己要使用的系统环境选择下载32位或者64位的git,下载完成后安装,安装过程没有什么需要太注意的地方,一直下一步就行了。
4.TortoiseGit,这个是Git的windows Shell界面
下载地址:https://tortoisegit.org/download/
在这里插入图片描述

可以根据需要下载32位或者64位的的TortoiseGit,然后安装,安装过程比较简单,下一步即可。

至此,搭建Git服务器需要的软件都已下载/安装好了。关于Jenkins的安装与配置,就不在这里讲了。

二.配置Gitblit
1.创建一个用于存放代码的文件夹即仓库(repository)
在这里插入图片描述

文件夹名字可以随便取
2.打开上面解压好的gitblit-1.9.1文件夹
在这里插入图片描述

在data文件夹下找到default.properties文件,使用notepad++打开
在这里插入图片描述

3.找到git.repositoriesFolder修改仓库地址,改为第一步中创建的文件夹的路径
在这里插入图片描述

4.找到server.httpPort,设定http协议的端口号(这里设置的端口号不要与已有的端口冲突)
在这里插入图片描述

5.找到server.httpBindInterface,设定服务器的IP地址。这里就设定你的服务器IP。
在这里插入图片描述

6.保存关闭文件。
7.运行gitbilit。cmd批处理文件
在这里插入图片描述

这个文件执行完以后就可以在浏览器中打开并且使用GitBlit了
在这里插入图片描述

8.将Gitblit设置成服务
在Gitblit目录下找到installService.cmd文件
在这里插入图片描述
使用notepad++或者记事本打开这个文件
修改ARCH
32位系统:SET ARCH=x86
64位系统:SET ARCH=amd64
添加CD为程序目录
SET CD=C:\gitblit\gitblit-1.9.1
修改StartParams里的启动参数
设置为空就可以了
如下图:
在这里插入图片描述

右键以管理员身份运行,运行完以后在服务中就会有Gitblit这个服务了
在这里插入图片描述

平时在使用的时候保持这个服务是启动状态就可以了。
至此,Gitblit服务器搭建完成了。关于如何在gitblit中创建仓库以及如何使用TortoiseGit下载上传以及clone这里就不介绍了。

三.在Jenkins上使用Git
1.在Jenkins中设置git服务器的url
在这里插入图片描述

如上图,在使用Git的时候一共有3中url:分别是ssh,http,git。如果使用ssh这种url就需要生成公钥私钥,然后在Jenkins和gitblit中分别进行相应的设置,感觉比较麻烦,我就放弃了这种方式。
双斜杠后面依次是:用户名,ip,权限,git仓库地址
我使用的http这种类型的url
使用这种类型的url只需要在Jenkins中像下图这样设置即可:
在这里插入图片描述

点击add按钮可以添加下载git代码使用的用户名和密码,将url和用户名密码设置好以后就可以了。
这样比使用ssh类型的url要简单很多。
git类型的url我没有用,也没有研究,这里就不介绍了。

2.设置本地下载代码的路径
如果不指定代码下载到本地的路径,默认会下载到当前Jenkins工程所在的工作路径
点击Additional Behaviours下面的Add按钮然后选择Check out to specific local branch可以设置代码下载到本地的路径
在这里插入图片描述
在这里插入图片描述

3.Jenkins调用脚本上传内容到git
如果直接在本地调用脚本上传,那么可以使用如下命令
git init //初始化
git pull origin master //从git上下载代码,上传之前先将本地的代码更新到最新版本
git add . // 将本地的存储代码的文件夹中所有的文件全部添加add到git
git commit -m “commit_info” //提交代码到git
git push -u origin master //push刚提交的代码
Tips: 和SVN有点儿不一样,git在commit之后还需要push才可以完成代码的上传。
但是如果是Jenkins调用脚本,在执行commit命令时就会报如下错误:
Author identity unknow
*** Please tell me who you are.
Run
git -config --global user.email “you@example.com”
git -config --global user.name “Your Name”
to set your account’s default identity.
Omit --global to set the identity only in this repository.
这里是指需要设置用户名和邮箱,不知道为什么不需要设置密码,事实上git也没有设置密码的命令。
在git commit -m “commit_info”这一行前面添加两行命令:
git config --global user.name ‘admin’ //这里设置用户名
git config --global user.email ‘you@example.com” // 这个邮箱其实可以随便写,写一个不存在的邮箱也可以
Tips:注意,这两行添加在git commit -m “commit_info”前面。

四.遇到的坑
从一台机器上传代码到git,然后从另一台机器下载后,bat脚本里的换行全部都没有了。导致bat脚本运行出现问题(因为bat脚本是用记事本打开的,而这个换行全部没有的问题只在记事本文件中会有,事实上,对于换行符没有的bat脚本如果使用notepad++打开,也是正常的,所以这个问题卡了一会儿,刚开始连问题都找不到,用文件比较工具对比,两个文件一摸一样)
问题描述完了下面说说出现这个问题的原因。
文档的格式一共有CRLF,LF,CR三种,其中CRLF是windows下的文档格式,LF是Unix下的文档格式,CR是Macintosh下的文档格式。如果使用的是windows系统,当把代码上传到git的时候,git会自动把CRLF格式的文档转换为LF格式,当下载代码的时候,git又会自动把LF格式的文档转化为CRLF格式的,看起来好像非常只能,没有什么问题,但是git的这个功能存在bug,导致下载下载的文档还是LF类型,所以就出现了换行符没有的情况(在windows和Unix下的换行符是不一样的)
解决办法:
使用core.autocrlf false 命令可以禁止git自动转换文档格式。
这就需要在git commit -m “commit_info”前面添加一行
git config ==global core.autocrlf false
Tip: 这个要添加在git commit -m “commit_info”前面,即在提交前进行设置

git core.autocrlf命令介绍
由于git是linux平台的,我们如果在windows平台下写的代码,在上传下载的过程中就可能会出现格式问题,或者说本身我们的开发平台就会存在跨平台的情况,也是会有格式化的问题。
Git可以在提交时自动把行结束符CRLF转换成LF,而在签出代码的时候把LF转换成CRLF。用core.autocrlf来打开此项功能,如果时在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:
$ git config --global core.autocrlf true
Linux或Mac系统使用LF作为行结束符,因此如果你不想Git在签出文件时进行自动转换;当一个以CRLF为行结束符的文件不小心被引入时,你肯定想进行修正,把core.autocrlf设置成input来告诉Git在提交时把CRLF转换成LF,签出时不转换:
$ git config --global core.autocrlf input
这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。
如果你时Windows程序远,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在仓库中:
$ git config --global core.autocrlf false

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值