持续集成 jenkins 小结

woyebuzhidaowoshishei · 2016年03月22日 · 最后由 charles 回复于 2016年07月06日 · 2560 次阅读

前言

最近一直在使用 jenkins,给自己这段时间的工作做个记录和总结吧。

jenkins 环境搭建

jenkins 使用-建工程

新建-》输入项目名,进入如下页面。

#jenkins 使用-系统设置
系统管理-》系统设置

  • 配置系统的全局变量,以键值对的形式配置,可以通过 $ 变量名 访问。

  • jdk,ant 等配置
    可配置多个。不同节点下的,不同版本的。可以在构建时选择。

jenkins 使用 - 发送邮件

  • jenkins 自带的邮件系统 job-》配置-》增加构建后操作
  • jenkins 插件 Email Extension Plugin 第一步:系统管理-》管理插件-》可选插件 第二步:系统管理-》系统设置 第三步:job-》配置-》增加构建后操作

jenkins 使用 - 上传文件至 ftp

  • 系统管理-》管理插件-》可选插件 FTP publisher plugin
  • 系统管理-》系统设置-》FTP repository hosts
  • job-》配置-》增加构建后操作

jenkins 使用-配置节点

  • 系统管理-》管理节点-》新建节点-》输入节点名称
  • 在需要配置节点的机器上打开配置节点的页面

jenkins 使用-权限管理

  • jenkins 自带的权限管理
    • 系统管理-》Configure Global Security
    • 主要是访问控制
  • jenkins 权限管理插件
    • 系统管理-》管理插件-》可选插件-Role-based Authorization Strategy
    • 系统管理-》Configure Global Security -》访问控制-》Role-Based Strategy
    • 系统管理-》Manage and Assign Roles
    • Assign Roles:
      • Global roles:添加用户和用户组,分配某个用户属于哪个用户组。
      • Project roles:添加某个工程或某一组工程的用户或用户组
      • Slave roles:添加某个节点或某一组节点的用户或用户组
    • Manage Roles:
      • 为相对应的用户和用户组分配权限

jenkins 使用-我遇过的坑

  • jenkins 解锁
    • 之前跑着跑着,jenkins 就突然挂了,然后访问的 url 就变成了http://localhost:8080/login?from=%2F。搜索一番,说是被锁住了,但是我是一片空白,并不像网上说的有啥提示。最后是误打误撞,我执行了上面 2 条命令,重启 jenkins 服务,搞定了。
  • jenkins+selenium 在节点上,浏览器会在无界面的情况下运行。
    • 我的 jenkins 节点是 windows 机器,我在配置节点的时候选择了Launch slave agents via Java Web Start这个方法来配置节点,但是我在 connected 成功之后,手贱多做了一步,file-》install as a service,这一步就是将 jenkins 作为一个 windows 服务来安装来,虽然更稳定,但是咋跑有关 selenium 的 case 时,看不见浏览器界面。真是坑。。。。
  • 电脑上配置的环境变量,在构建中无法使用,command not found。
    • 在 jenkins 构建过程中调用 shell 脚本之前,要先把用到的环境变量先 export 一下,这样才能使用。
  • Email 附件无法发大容量的附件
    • 这个目前我还没有解决,我在系统设置里面设置了附近没有大小限制,但是一发大容量附件就报错,原因没有找到,最后没办法,减小了附件的大小。
  • 忘记管理员密码。 在做权限分配时,不小心设置匿名用户不能操作,又设置里不允许用户登录,导致无法操作 jenkins。以下为解决办法
    • 停止 jenkins 服务 launchctl unload /Library/LaunchAgents/homebrew.mxcl.jenkins.plist
    • 修改 jenkins 的 config.xml 文件 将以下内容全部删除
<useSecurity>true</useSecurity>
 <authorizationStategy class="hudson.sucrity.FullControlOnceLoggedInAuthorizationStrategy">
 ......
 </authorizationStategy>
 <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>false</disableSignup>
 .. 
 </securityRealm>
  • 重启 jenkins 服务 launchctl load /Library/LaunchAgents/homebrew.mxcl.jenkins.plist
    • 注:删处上面文件内容后,所做的权限分配也就全部没有了,但是用户还在。

总结

其实遇到的坑不少,但是记得的没有几个了,所以还是要纪录下来,不然真的会忘啊。之后再遇到,也会慢慢更新的。jenkins 还是很强大的,慢慢研究吧。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

jenkins 作为 windows 服务时,应该是浏览器在无界面的状态下执行测试,也能打开的

#1 楼 @sanlengjingvv 嗷嗷。。看不见浏览器界面,我误以为没有打开。。

适合新手学习的 Jenkins 持续集成,我最近也在做持续集成 Android+iOS 打包 +selenium+jmeter 的环境,可以交流一下

#4 楼 @tongshanshanshan testerhome 也不能发消息,我的 QQ287410971,我看你在做 appium,我正在打算做自动化,还在考虑用什么工具或者框架呢,方便的话,交流一下哈

@tongshanshanshan LZ,我不太明白这个电脑上配置的环境变量,在构建中无法使用,command not found 的问题只需要 export 下就可以了?我理解是至少通过某种方式将某些环境变量放入 job 里面才可以正常运行,export 只是设置或者查看环境变量,如果按照你这么说是不是通过 export 设置你所需要的环境变量?另外一个我碰到一个坑就是我本地做了一个小项目,里面含有一些单元测试的 case,我通过 git 传入 jenkins,由于运行的工具有一些依赖包,但是我传到 jenkins 没有将依赖包放入进去,这样也会出现:Perhaps you are missing some plugin?,这种情况不知道你是如何解决的?

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