Jenkins 部署

Jenkins 部署

Jenkins 是持续集成服务器,可以帮你自动化运行测试用例。 这有助于确保所有测试保持通过,应用程序总是准备就绪的。

环境: Ubuntu 16.04

参考链接

  1. 使用Jenkins进行持续集成 – 廖雪峰的官方网站
  2. Jenkins 官网

安装搭建

  1. 安装java(如果没有)

        sudo apt-get update
        sudo apt-get install openjdk-8-jre-headless
    
  2. 添加源并安装Jenkins(更多安装方式见官网)

        wget -q -O - http://pkg.jenkins-ci.org/debian-stable/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
        sudo apt-get install jenkins
    
  3. 一些命令和配置所在位置

        # 启动服务(使用apt安装的,不需要输入此命令)
        sudo systemctl start jenkins
        # 查看状态
        sudo systemctl status jenkins
        # 日志文件
        tail -f /var/log/jenkins/jenkins.log
        # 配置文件
        vi /etc/default/jenkins
    
  4. 初始化Jenkins

    • 使用浏览器访问:http://your_domain_or_IP:8080
    • sudo cat /var/lib/jenkins/secrets/initialAdminPassword 获取密钥,填写到网页中
    • (此处进行较长时间的等待…原因不详)
    • 点击Install suggested plugins,等待读条
    • 填写用户,然后保存

部署项目

  1. 创建一个新任务
  2. 填写项目名,选择“构建一个自由风格的软件项目”
  3. 需要注意的有:
    • 源码管理:选择git,填写仓库URL,本地库的格式 => /path/projectName/.git,可选分支,默认master
    • 构建触发器:主要的有3种,“触发远程构建”中可以指定TOKEN并构造URL来触发构建,可以用于git的钩子,每次提交的时候就构建; “Build periodically”是周期性构建,无论代码是否有修改,都会执行的构建,一般用于每天跑测试; “Poll SCM”是根据版本控制软件(git)的版本号来判断,如果有变化则checkout后构建。 后两种的内容采用crontab的周期格式,并且每次构建除了”Poll SCM”之外,默认不会checkout代码
    • 构建:可以指定”Execute Shell”,这是真正做的内容,可以checkout代码,执行一些测试脚本,编译代码,提交到远程库等
    • 构建后操作:构建结束会得到结果(成功/失败),可以选择”E-mail Notification”或”Editable Email Notification”来进行邮件提示。“不稳定”的含义是相比于上一次构建的结果,从失败到成功、成功到失败、失败到失败,这三种情况的总和。一般勾选此选项,责任人是触发此构建的用户

例子

  1. 拉取测试分支到本地:git clone git@git.oschina.net:tyruschin/test_jenkins.git
  2. 进入Jenkins,http://localhost:8080/
  3. 左侧新建,填入item name,选择“构建一个自由风格的软件项目”
  4. 填入描述
  5. 源码管理选择git,填入仓库路径/.git
  6. 构建触发器选择“Poll SCM”,填入* * * * *,表示每分钟自动检测git的版本号是否有变化,如果有,则checkout后构建
  7. 仓库中有两个脚本,一个是执行出错的脚本ls not_exist_dir,一个是正常执行的脚本,可以多次尝试。先在构建中增加构建步骤Execute shell,填入仓库路径/ok.sh
  8. 选择增加构建后操作步骤中的E-mail Notification,勾选“每次不稳定的构建都发送邮件通知”,Recipients中可以用空格分隔多个默认收件邮箱,每个不稳定状态都会提醒这些人。同时也可以勾选“单独发送邮件给对构建造成不良影响的责任人”,发送给造成不稳定状态的构建用户
  9. 保存
  10. 点击左侧“立即构建”,记录git仓库中的代码到工作空间,可以看到构建历史上多了一个#1(配置成功的情况是蓝色的,如果红色则需要查看Output),蓝色球代表成功,红色球代表失败,点击进去可以看到一些过程信息,Console Output中可以看到一些输出,最后几行有执行脚本的输出和执行状态:
        Started by user admin
        Building in workspace /var/lib/jenkins/workspace/temp
        Cloning the remote Git repository
        Cloning repository /server/www/test_jenkins/.git
         > git init /var/lib/jenkins/workspace/temp # timeout=10
        Fetching upstream changes from /server/www/test_jenkins/.git
         > git --version # timeout=10
         > git fetch --tags --progress /server/www/test_jenkins/.git +refs/heads/*:refs/remotes/origin/*
         > git config remote.origin.url /server/www/test_jenkins/.git # timeout=10
         > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
         > git config remote.origin.url /server/www/test_jenkins/.git # timeout=10
        Fetching upstream changes from /server/www/test_jenkins/.git
         > git fetch --tags --progress /server/www/test_jenkins/.git +refs/heads/*:refs/remotes/origin/*
         > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
         > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
        Checking out Revision 5b2707a3967d620e224fe7df79970cce4253a30d (refs/remotes/origin/master)
         > git config core.sparsecheckout # timeout=10
         > git checkout -f 5b2707a3967d620e224fe7df79970cce4253a30d
        First time build. Skipping changelog.
        [temp] $ /bin/sh -xe /tmp/hudson6040940560717864847.sh
        + /server/www/test_jenkins/ok.sh
        标准的输出,没有错误
        Finished: SUCCESS
    
  11. 回到项目主页面,点击”配置“,将Execute shell改为err.sh,并保存
  12. 回到主页面,点击立即构建,出现红球,并且相应的邮箱收到邮件提醒
        See <http://localhost:8080/job/temp/2/display/redirect>
    
        ------------------------------------------
        Started by user admin
        Building in workspace <http://localhost:8080/job/temp/ws/>
         > git rev-parse --is-inside-work-tree # timeout=10
        Fetching changes from the remote Git repository
         > git config remote.origin.url /server/www/test_jenkins/.git # timeout=10
        Fetching upstream changes from /server/www/test_jenkins/.git
         > git --version # timeout=10
         > git fetch --tags --progress /server/www/test_jenkins/.git +refs/heads/*:refs/remotes/origin/*
         > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
         > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
        Checking out Revision 5b2707a3967d620e224fe7df79970cce4253a30d (refs/remotes/origin/master)
         > git config core.sparsecheckout # timeout=10
         > git checkout -f 5b2707a3967d620e224fe7df79970cce4253a30d
         > git rev-list 5b2707a3967d620e224fe7df79970cce4253a30d # timeout=10
        [temp] $ /bin/sh -xe /tmp/hudson2967294202264901782.sh
        + /server/www/test_jenkins/err.sh
        以下尝试访问一个不存在的目录
        ls: cannot access 'not_exist_dir': No such file or directory
        Build step 'Execute shell' marked build as failure
    
  13. 尝试提交一个git修改到本地(与源码管理中填写的库对应),1分钟内仍然会收到一个错误提醒,构建出现红色球
  14. 将配置中的err.sh改回ok.sh,点击立即构建,邮箱收到纠正提醒,构建出现蓝色球
  15. 多次点击立即构建或提交修改,由于上一次状态是正确,当前状态也是正确的,不会发送提醒邮件

用户管理

忘记密码

http://www.cnblogs.com/zz0412/p/jenkins_jj_11.html
然后进入之后,点击右上角的名字 – 设置,修改密码

配置用户注册

http://www.cnblogs.com/zz0412/p/jenkins_jj_14.html

    原文作者:TyrusChin
    原文地址: https://www.jianshu.com/p/1f692c0966b6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞