通用技术 Jenkins 基础

zero · 2016年03月10日 · 最后由 丫滴 回复于 2019年02月13日 · 3203 次阅读
本帖已被设为精华帖!

title: JENKINS 基础使用

tags: Jenkins,Uuntu,Windows,持续集成,基础

Jenkins 总结

修改时间 修改内容 修改人
2016.3.12 创建 刘永志

个人理解持续集成:为解决程序代码提交质量低,提交内容导致原有系统的 BUG,按时或按需自动编译版本,进行自动化测试。

百度对持续集成的定义:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试) 来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

为什么写这篇文章:笔者在学习 jenkins 的过程中遇到了很多坑,且学习过程中好多搜到的资料过于零散,导致学习进度缓慢,想通过这篇文章,能让大家在学习的过程中少走弯路。虽然我预计这篇文章是做不到的,但是能够帮助到几位也是好的,以此为望,大家共勉。

一、Jenkins 安装

系统&安装方式 直接使用 WAR 文件 安装包安装 将 WAR 文件放到 WEB 容器中
Windows 系统 难度:低 难度:中 难度:高
Linux 系统 难度:低 难度:中 难度:高
Mac 系统 难度:低 难度:中 难度:高

笔者推荐直接使用 WAR 文件,越简单的东西越适合初学者。且笔者在使用安装包安装中,出现过一次无法获取插件列表的情况。

Windows 下安装:

系统版本 Jdk 版本 Jenkins 版本
Windows 10 JDK 8 Jenkins1.651
  1. 安装 JDK:(windows 下 jdk 的安装及环境变量配置百度一下)

  2. 下载安装最新版本 Jenkins:
    登陆 http://jenkins-ci.org/ 下载 windows 版本
    下载的压缩包内含一个.msi 程序,直接安装

  3. 访问 Jenkins:直接访问 Jenkins http://本机 IP:8080(8080 为 jenkins 默认端口号)

Linux Ubuntu 下安装:

系统版本 Jdk 版本 Jenkins 版本
Ubuntu 14.04LTS 桌面版 Openjdk-7-jdk Jenkins1.651

Ubuntu 安装包安装:

  1. 安装 open-JDK

    sudo apt-get install openjdk-7-jdk

  2. 安装 Jenkins

    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update -y
    sudo apt-get install jenkins -y

  3. 安装位置:

    安装目录:/var/lib/jenkins
    日志目录:/var/log/jenkins/jenkins.log

  4. 启动停止服务:

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

  5. 访问 jenkins:

    http://本机 IP:8080/

直接使用 WAR 文件:

  1. 安装 open-JDK(同上文)
  2. 下载 war 文件
  3. 将对应 war 文件传入 linux 服务器(以下简单介绍几种传入方式,仅仅提供思路以做百度谷歌之用)
    • 架设 FTP 服务器
    • Winscp 工具传入
    • 虚拟机可用虚拟机增强工具拖入或启动共享文件夹
    • U 盘等硬件接入
  4. 使用 war 文件开启服务

    Java -jar /home/jenkins.war(wan 文件路径) --Port=8080(端口)

  5. 访问 jenkins

    http://本机 IP:8080/

  6. 将服务加入开机启动

    cd /etc/init.d //切换目录
    vi jenkins.sh //编写 shell 脚本
    插入 java -jar /home/jenkins.war(wan 文件路径) --Port=8080(端口)& //后台运行
    chmod 755 jenkins.sh //修改 shell 脚本权限
    update-rc.d test defaults 95(启动顺序编号) //加入启动项
    update-rc.d -f jenkins.sh remove //删除启动项(需在/etc/init.d 目录下执行)

  7. Jenkins 的安装目录:

    /root/.jenkins/

二、Jenkins 配置及插件安装使用简介

HTML Publisher Plugin 插件在新的 Jenkins 版本中会导致打开的网页中无法加载 CSS 以及无法点击按钮的情况,由于 CSP 导致,可在 Jenkins 控制台中执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") 以解决此问题。其他由于 CSP 原因导致的 html 插件也可用此方法解决。

插件安装:

安装方式 在线安装 下载后安装
优势缺陷 优势:自动安装依赖&&缺陷:安装速度慢 优势:速度快&&缺陷:不会自动安装依赖

在线安装:

  • 进入系统管理

  • 进入插件管理

  • 切换可选插件分页

  • 选择插件,直接安装

  • 若遇到可选插件为空的情况

切换到高级界面

点击立即获取按钮

若报错,建议直接重新安装 jenkins(查了一天解决办法,放弃了,直接重装好了)

离线安装:

  • 进入插件管理,高级分页

  • 上传插件
  • 上传成功后会自动安装

  • 若安装失败请去对应插件页面检查是否安装对应依赖

账户安全配置:

PS:
如果用户权限配置错误导致无法修改,修改服务器 jenkins 安装目录下 config.xml 文件,重启 jenkins 服务即可。

  • 进入系统管理—Configure Global Security

  • 选择 Jenkins 专用用户数据库,允许用户注册,保存

  • 注册用户

  • 再次进入 Configure Global Security

  • 启动安全矩阵,添加用户,添加权限,保存

三、Jenkins 的环境变量说明

  • 环境变量列表:

    • BUILD_NUMBER, 唯一标识一次 build,例如 23;
    • BUILD_ID,基本上等同于 BUILD_NUMBER,但是是字符串,例如 2011-11-15_16-06-21&&据说新版本只有一个 ID,具体大家自己尝试下;
    • JOB_NAME, job 的名字,例如 JavaHelloWorld;
    • BUILD_TAG,作用同 BUILD_ID,BUILD_NUMBER,用来全局地唯一标识一此 build,例如 jenkins-JavaHelloWorld-23;
    • EXECUTOR_NUMBER, 例如 0;
    • NODE_NAME,slave 的名字,例如 MyServer01;
    • NODE_LABELS,slave 的 label,标识 slave 的用处,例如 JavaHelloWorldMyServer01;
    • JAVA_HOME, java 的 home 目录,例如 C:\Program Files (x86)\Java\jdk1.7.0_01;
    • WORKSPACE,job 的当前工作目录,例如 c:\jenkins\workspace\JavaHelloWorld;
    • HUDSON_URL = JENKINS_URL, jenkins 的 url,例如http://localhost:8000/
    • BUILD_URL,build 的 url 例如http://localhost:8000/job/JavaHelloWorld/23/
    • JOB_URL, job 的 url,例如http://localhost:8000/job/JavaHelloWorld/
    • SVN_REVISION,svn 的 revison, 例如 4;
  • 需要特殊注意的是系统管理,系统设置,高级中 3 个变量的引用(尤其注意重装 jenkins 后一定要检查是否与之前 Jenkins 的一致,哪怕是同一个版本甚至于同一个 WAR 文件)

四、Jenkins 使用

  1. 创建项目,输入项目名称,选择项目类型

  1. 根据项目情况输入项目信息

  1. 构建

  1. 查看构建结果(蓝点为成功,红点为失败,Console Output 选项为查看构建的 log)

五、Jenkins 在跨平台使用注意事项

  • 路径: Jenkins 路径格式: Windows 服务器下也支持”/””\” 并存模式,推荐使用”/”,方便跨平台使用。 PS:看资料是可以,未尝试
共收到 19 条回复 时间 点赞

建议还是别贴图比较好。阅读性较差

—— 来自 TesterHome 官方 安卓客户端

zero #4 · 2016年03月10日 Author

#1 楼 @zsx10110 有空我再整理一份发上来 之前一直习惯用 word 写总结,但是没法直接上传,有啥便捷的方法没?

看着好难受 ... 不看了 等清晰版 zzz

#2 楼 @441385483 用 markdown 重新整理下 应该不会很麻烦的。

这样的贴图影响阅读., 不要为了发文章而发文章. 以前的就算了吧. 有新的心得随时发出来就好. 欢迎多分享.

zero #5 · 2016年03月10日 Author

#5 楼 @seveniruby 等我修改完重新发一遍

zero #9 · 2016年03月13日 Author

#5 楼 @seveniruby 修改完了 帮忙弄回去吧

说一点:jenkins 的环境变量中的 BUILD_ID,在新版本中,它的值只是一个纯数字了,不在包含当前日期了。

zero #11 · 2016年03月15日 Author

#8 楼 @jxxgxldl 好的 我改写

赞一个,写的很详细

字体看到我眼花。。。jenkins 能整合单元测试?

可以搞个 git 的吗?我最近尝试 MSBUILD 和 git 的持续集成

超赞

—— 来自 TesterHome 官方 安卓客户端

#12 楼 @shawn 阔以整合单元测试

不错的经验贴,有贴图很详细!

建议楼主 建一个 QQ 群 分享智慧

AppetizerIO 在 Jenkins 中接入 Appetizer 质量监控 中提及了此贴 07月11日 22:54

请教楼主,我可安装插件列表一直为空,重装了好几次都这样,有解决的办法吗?只能离线安装了么?

看了我还是不太懂,这个 Jenkins 怎么工作滴,有啥好处

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册