linux 下 配置jenkins 与 github 触发构建-陈超允

来源:互联网 发布:seo大牛张辉的网站 编辑:程序博客网 时间:2024/05/23 18:20

1.安装jenkins

环境:CentOS 6.7

安装方式:

$ yum install yum-fastestmirror -y  #安装自动选择最快源的插件#添加Jenkins源:$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key$ yum install jenkins               #安装jenkins

启动方式:

$ sudo service jenkins start

访问方式:

浏览器输入http://your server ip:8080/

更改配置(如端口)方式:

$ vim /etc/sysconfig/jenkins$ sudo service jenkins restart

2.jenkins基础配置

Unlock

经过上面的配置,你可以访问你的Jenkins了,在浏览器中输入:http://your server ip:8080/,然后输入密码:

按照提示我们执行cat /root/.jenkins/secrets/initialAdminPassword得到Administrator password,输入后点击Continue,如下:


选择install suggested plugins,等待安装完毕,如果有安装失败的可以跳过,之后可以手动根据需求安装。


设置初始账户和密码



设置完成后进入界面:


3.github配置

sercret text

注:此处需要一个对项目有写权限的账户

进入github --> setting --> Personal Access Token --> Generate new token



自己先保存此token如果丢失,之后再也无法找到这个token

GitHub webhooks 设置

进入GitHub上指定的项目 --> setting --> WebHooks&Services --> add webhook --> 输入刚刚部署jenkins的服务器的IP


4.jenkins的github配置

安装GitHub Plugin

系统管理-->插件管理-->可选插件

直接安装Github Plugin, jenkins会自动帮你解决其他插件的依赖,直接安装该插件Jenkins会自动帮你安装plain-credentials 、git 、 credentials 、 github-api


配置GitHub Plugin

系统管理 --> 系统设置 --> GitHub --> Add GitHub Sever

如下图所示



API URL 输入 https://api.github.com,Credentials点击Add添加,Kind选择Secret Text,具体如下图所示。



设置完成后,点击TestConnection,提示Credentials verified for user UUserName, rate limit: xxx,则表明有效。

创建一个freestyle任务

- General 设置
填写GitHub project URL, 也就是你的项目主页
eg. https://github.com/your_name/your_repo_name


- 配置源码管理


  1. 填写项目的git地址, eg. https://github.com/your_name/your_repo_name.git
  2. 添加github用户和密码
  3. 选择githubweb源码库浏览器,并填上你的项目URL,这样每次构建都会生成对应的changes,可直接链到github上看变更详情

- 构建触发器,构建环境


- 构建


- 构建后操作



最后点击保存即可

5.测试效果


6.参考

http://www.jianshu.com/p/b2ed4d23a3a9


遇到问题

(1)乱码问题
在.jenkins/jenkins.xml中新增-Dfile.encoding=utf-8,可解决jenkins信息乱码问题,如下:

<arguments>-Xrs -Xmx256m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

(2)jenkins 任务结束后 执行linux 脚本停止

使用jenkins的批处理或者ant 启动tomcat失败。查了一下原因说是 jenkins在脚本执行结束后,就认为任务结束了,但是脚本启动的相关子程序仍然在运行。由于jenkins认为任务已经结束了,就结束了该构建相关的子进程。

       解决办法:增加一个环境变量。

        BUILD_ID=pleaseDontKillMe and it works like a charm。

      可以添加在执行任务的节点设置中添加该变量。