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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 使用SpringBoot+SpringCloud写了一套APP后台服务,也引入了当下比较流行的微服务的理念,模块也...
    CptHiro阅读 34,388评论 4 124
  • Github配置:settings => Developer settings => Personal acces...
    BigJeffWang阅读 2,682评论 0 49
  • 目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,...
    撸大师阅读 6,494评论 0 3
  • 11.13 今天是思思第一去平安上班的日子,可以看出她很兴奋,也很憧憬,不论以后的结果怎样,她走出这一步我觉得特别...
    吾思故吾在丶阅读 244评论 1 0
  • 鲁迅曾说:“世上本没有路,走的人多也便成了路。” 但是在一个人的征途中怎么能有多人参与呢?那是我在房地产干销售时候...
    奔跑吧小短腿阅读 73评论 0 0