jenkins git插件安装

0.前言

环境:linux(mint or others)

目标:自动构建deb包

任务简述:

项目组需要一个可以自动构建的环境。其主要目的是自动生成一个linux下编译环境的安装包。其中,要维护3个github远端的git库,和一个自己服务器的打包文件。

1.安装初步

进入官网选择最近版本 1.进入官网,点击“Use Jenkins”  \

2.如果你想要安装Jenkins,点击"Installing Jenkins"  \

3.本文环境是在Linux下,可以用Unix的Ubuntu环境安装,apt-get 或者Debian包。  \

4.使用命令安装Jenkins  \

5.如果想要了解(建议你了解)安装做了什么,下面的话说了很多。
1. Jenkins的默认环境安装在了/var/lib/jenkins下面,本文使用了这个默认的文件夹,当然如果为了jenkins新建一个用户名后(这个是必须的,默认会新建),也可以放在/jenkins/home/下面。2. 部署jenkins的基本环境。包或了添加了jenkins的用户。Others. Jenkins为了能够跟java无缝对接,jenkins将一些部署的文件放在了war包里面,如果感兴趣可以尝试定制自己的东西。不过Jenkins并不欢迎你这么做。Tips:我发现其实Jenkins只是用了这几个目录。 /var/lib/jenkins /var/log/jenkins /var/cache/jenkins  \



2.Jenkins部署初步

2.1 重要概念

在部署前,先需要对jenkins进行简要理解。

Jenkins是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。也就是说,我们在项目中借用Jenkins来持续构建软件。就相当于托付别人办事一样,我们只能监督事情的目的,结果,而不需要也不应该参与事情办理打全过程。通过一些初步部署工作发现,Jenkins在CI过程中不会使用系统用户的权限,而是使用用户(你)赋予Jenkins的权限,用Jenkins来代理一切事物。(jenkins读取你在web中的配置,使用它在本地的权限,使用jenkins了解的ssh权限进行与远端的访问)

如果,你在配置中遇到Permission Deny 或者是一些ssh key的问题,是因为你并没有理解上一段的含义。

2.2 jenkins插件

如果你只需要进行java的环境部署的话,恭喜你,系统已经预先安装了java需要的所有插件,这是因为jenkins的前身huston本来就是为了java的部署服务的,这不是本文讨论核心。 对于Git来说,需要几个东西。 Git plugin:这个插件是用来同步git库的。 Multiply SCMs: 多个SCM通道,每一个SCM都可以部署一个Git。用过Git库的人会问道,Git plugins不是可以同步多个库么?为什么要用这个。答案是:尽管Git库可以同步多个git库,但是需要注意的是Git插件提供branch选项尽管可是该多个,但是是针对与每一个库同时检索多个branch,这个不符合我们使用的原则。对于部署来说,只需要调用一个Git库中的一个分支,所以我妈需要这个plugins。

2.3 jenkins的系统设置

如果你打开打是一个已经安装好打jenkins的话,就像下面打图一样,在默认的网址 localhost:8080中打开部署好的jenkins。如果是刚刚安装过的jenkins,则MainView中不会有东西。

本文以Chrome浏览器为例,因为系统预装的是中文,所以jenkins可以识别,并对大部分内容进行了汉化。细心的人可能已经发现了右上角进入登录界面;如果是第一次使用打话没有登录,是以匿名用户身份进行设置的。不过没有关系,因为在权限设置前,匿名账户会获得所有权限的。

\

点击左侧的”系统管理“

\

点击主界面中的”插件管理“,然后点击”可选插件“ 找到需要打插件,然后点在下方安装按钮。(PS:如果你找不到安装按钮,可以放大缩小浏览器的显示比例,jenkins并没有很好的研究web端界面)

\

3. Git 插件初探

首先,由于Jenkins没有默认安装Git插件,需要Git库同步时候,需要手动选择安装git插件。

3.1 Git plugin 安装

3.1.1 未安装前的样子

下图是没有安装git库的时候的样子,发现“源码管理”中没有git,这是由于jenkins没有默认安装git插件的缘故。

\

3.1.2安装git plugin

在“系统管理”->“管理插件”中找到,“可选插件”选项卡。“过滤“(一个名为过滤的搜素窗口)中可以用键盘输入Git来查找。

我们只点git plugin,jenkins会自动为我们添加其依赖的插件如下图。

\

等待安装,如果勾选下方的”安装完成后重启Jenkins“的话,会jenkins会重启;或者可以在浏览器中输入”localhost:8080/restart“来重启jenkins。

\

 

3.2 安装Multiple SCMs插件

尽管Git插件可以做到同步多个git库,但是只能同步多个git库的同一个分支,如果你的项目恰好需要不同库的不同分支进行同步的话,这就需要Multiple SCMs插件了。

\

等待安装

\

安装后的效果:在源码管理中可以点选”Multiple SCMs“

\

点击”AddSCM“,点选Git,可以加入多个库。

\

3.3GitHub plugin 安装

3.3.1 安装

同样的在可选插件中选择”GitHub plugin“,jenkins同样会帮助你安装其依赖的其他插件。

\

3.3.2安装效果

可以在Build时候选择,”Build when a change is pushed to GitHub“,当GitHub更新的时候,重建。

\

3.4 新建Git项目

新建一个项目:(点击左栏菜单的新建)

因为是要与Git同步,所以选择的是没有预先设置的项目(构建一个自由风格打软件项目 free-style)。

\

点击"OK"后看到下图,当然,会发现有些东西并没有向下面这么全(这是因为我安装了很多其他打插件去尝试,比如GerritRepo等,不过这个跟本文关系比较少,这里不做介绍)

\

选择"源码管理"下的"Git"选项

点击Add添加一个私钥,在A处填写你的姓名,将ssh生成的私钥用gedit or vi打开,将内容复制到B处。

\

如果发现,添加后有红色字体,则证明有问题,Jenkins在这里使用了一个简单的clone命令来尝试添加的私钥是否正确。(用ssh链接git库:git@github:yourteam/yourproject/)

\

这里可以该git的分支,默认分支是origin下的master分支,在界面中可以改为origin下的任意其他分支。
改变源为远端upstream源  \
结果  \

3.1 GerritRepo插件

3.1.1 写在开始——需要注意的事情
GerritRepo需要做的内容完全可以在shell中进行,它的存在只不过是用来简练了代码。
4. Shell & Repo(python) Jenkins可以执行脚本,只要你装插件,php,python都可以跑。但是,本文发现,Jenkins中执行source语句并不理想,也许是因为Jenkins固定指向的sh是bash,而ubuntu中默认的是dash的原因。本文采取的方法是,将想要执行打语句写入一个脚本中,并在脚本第一行注释出用什么sh执行,来规避可能存在的风险。 1. 本文采用在shell中直接读repo的绝对路径在初始化。 2. 在workspace中编写一个sh,用bash执行。  \

5. 其他

 

5.1 build部署

我们可以设置按照某种周期来执行build(与crontab中相似,5个参数代表了:小时,天,月,年,十年)  \



 

5.2 一个关键的设置

如果你没有设置build的策略很肯能出现这个问题,由于频率过高或者代码一直在更新,很短时间内,build版本号挤压太多。 \
而我们想要的结果是这样的,无论多少个build,都保留最近几天打build  \

只需要设置一下策略就好 \


转至http://www.2cto.com/os/201502/375026.html


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值