jenkins+git详细配置及使用方法是什么?

jenkins+git详细配置及使用方法是什么?,第1张

方法/步骤

安装jenkins

参照官网wiki,如下图:

安装后的jenkin在/var/lib/jenkins启动关闭jenkins:

sudo /etc/init.d/jenkins startsudo /etc/init.d/jenkins stop

Jenkins安装完毕后,可以通过浏览器,例如192.168.16.183:8080,此处IP地址为Jenkins所在机器的IP地址。

配置jenkins

Jenkins安装好之后,需要为其安装gitlab插件:在主面板上点击Manage Jenkins ->Manage Plugins,选择安装Gitlab Plugin和Gitlab Hook Plugin。

搭建gitlab源码服务器

参照官网wiki,如下图:

安装完之后默认是只能本机通过localhost访问的,修改/etc/gitlab/gitlab.rb中的对应配置项如下:external_url ‘http://your ip:8080’nginx[‘listen_addresses’] = [‘your ip’]nginx[‘listen_port’] = 8080

配置SSH key

由于jenkins需要从gitlab上拉取代码,通过ssh方式。所以需要在jenkins机器上安装git,并且将jenkins机器上生成的ssh密钥的公钥(id_rsa.pub中的内容)添加到gitlab的ssh keys中:

在jenkins安装机器上安装git

sudo apt-get install git

配置username和Email,生成ssh密钥

git config –global user.name “your name”git config –global user.email “your email”ssh-keygen -t rsa -C “10010@gmail.com”

拷贝公钥内容填到gitlab服务器

配置GitLab connections连接到gitlab拉取代码使用,配置证书,使用gitlab api token。token从gitlab中获取,在个人设置中有Access Token一栏,创建一个token,填入jenkins的系统管理 ->系统设置 ->gitlab配置中。

Test Connection,显示success则表示配置成功。

测试集成环境

新建一个项目,源码管理选git,填入对应的仓库URL,配置 Credentials,这里可以选择用ssh username with private key(其他的我也没试成功过。。),输入用户名和对应的私钥即可

接下来构建触发器选择Build when a change is pushed to GitLab. GitLab CI Service URL: …

添加hook

由于我们的jenkins任务由webhook事件来通知,所以需要将上面的CIservice URL添加到gitlab对应项目的Integrations配置中。

RUN

配置完之后apply,保存。jenkins任务就新建完成了此时我们在本地push代码到gitlab服务器,可以看到:成功地触发一次jenkins构建,效果如下:

至此jenkins+gitlab持续集成环境搭建完成!

检查是否git-server允许ssh认证方式

以下步骤默认git-server允许ssh连接

检查是否添加jenkins所在服务器ssh-key至git-server中

检查jenkins服务启动用户是否通过在git-server中添加ssh-key的用户启动的

建议jenkins服务器通过普通用户启动服务,避免jenkins沦陷后服务器直接被提权

1.通过Jenkins web页面添加Git plugin

Manage Jenkins->Manage Plugins->Available中选择Git Plugin安装,

注意要填写user name和 email地址,否则日后会碰到git tag的错误

2.在Jenkins使用的机器上创建Git用户所需要的公钥

具体步骤参考前面Git server文章

http://blog.csdn.net/sheismylife/article/details/7204345

但是注意,要将最后生成的.ssh目录下的公钥和私钥文件复制到/var/lib/jenkins/.ssh目录下,否则git clone命令会报错

3.修改jenkins目录权限

chmod -R 777 /var/lib/jenkins

4.现在可以通过web页面创建一个项目Test,然后设置该项目使用Git作为版本管理。

并且设置repository路径,比如我的:git@S1:cml.git

5.在build选项的pom文件指定你需要执行的pom.xml路径

比如我的一个测试工程名叫client,是个maven工程,我设置为client/pom.xml

6.现在可以点击左侧的Build now进行测试

一切OK,则没有错误日志。在Build History中可以看到测试结果,有没有错误。

7.Email发送设置

在Manage Jenkins->Configure System->Email Notification中,设置SMTP发送的基本信息,点击Advanced,可以填写用户名和密码。还有一个测试按钮可以用来发送测试设置是否正确。

同时在Test项目中的Building Settings打勾选中E-mail

Notification,点击右边的问号,会出现帮助文档,说明在四种情况下会发送email,填写接受email的地址,然后故意将client代码

修改到不能编译通过。然后点击Build now按钮测试一下。果然收到email.

8.检查代码更新并编译

可以通过Poll SCM来设置定时检查编译功能

比如*/5 * * * * 就是每隔5分钟检查一次,如果git仓库中有更新,则执行build *** 作。

9.使用Maven私服加快下载速度

如我这篇文章所述,用私服可以避免下载过慢问题,也可以绕过公司内部外网限制问题。

http://blog.csdn.net/sheismylife/article/details/7209722

Jenkins的.m2目录路径在:/var/lib/jenkins/.m2/

首先清空里面所有的jar包,然后创建settings.xml文件,并编辑内容如下:

源码打印?

<settings>

<mirrors>

<mirror>

<!--This sends everything else to /public -->

<id>nexus</id>

<mirrorOf>*</mirrorOf>

<url>http://S1:8081/nexus/content/groups/public</url>

</mirror>

</mirrors>

<profiles>

<profile>

<id>nexus</id>

<!--Enable snapshots for the built in central repo to direct -->

<!--all requests to nexus via the mirror -->

<repositories>

<repository>

<id>central</id>

<url>http://central</url>

<releases><enabled>true</enabled></releases>

<snapshots><enabled>true</enabled></snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>central</id>

<url>http://central</url>

<releases><enabled>true</enabled></releases>

<snapshots><enabled>true</enabled></snapshots>

</pluginRepository>

</pluginRepositories>

</profile>

</profiles>

<activeProfiles>

<!--make the profile active all the time -->

<activeProfile>nexus</activeProfile>

</activeProfiles>

</settings>

现在点击build now测试一下,打开console output,看看命令行输出结果,如果发现从S1下载jar包,就正确。和不用私服的比较了一下,节省了1分多钟.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12065172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存