博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jenkins工作流的构建--实现自动化构建及邮件提醒功能
阅读量:6581 次
发布时间:2019-06-24

本文共 1654 字,大约阅读时间需要 5 分钟。

背景

  • 现阶段:开发 -> git push -> git pull -> 比较代码 -> 编译 -> 部署到全网 -> 重启服务器
  • 接入jenkins之后:开发 -> git push -> jenkins自动构建部署

jenkins是什么

jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

构建流程

  1. 从Jenkins官网下载最新war文件。(
  2. 安装jdk(
  3. 运行java -jar jenkins.war即可
  4. 安装插件(github,Generic Webhook Trigger)
  5. nodejs配置:system settings -> 全局工具配置
  6. create new job
  7. 使用webhooks建立连接
  8. git push --> 触发webhooks --> jenkins开始工作
  9. 构建结果 -> 通过邮件通知结果

详细流程

初始化jenkins包

下好war包之后,运行java -jar jenkins.war --httpPort=8383(指定端口8383)

打开本地localhost:8383 按照提示依次可看到
图片描述
图片描述
图片描述

安装插件(github,Generic Webhook Trigger)

图片描述

NodeJs配置:system settings -> 全局工具配置

图片描述

create new job:

创建一个自由风格的软件项目

图片描述

在Source Code Management中填入相关的git源码地址

图片描述

在Build Triggers 中选择

图片描述

在Build Environment及在build中选择NodeJs版本和写入需执行的shell脚本

此次的shell脚本如下:

echo 'check node --version'node --versioncd mock-demonpm install -g cnpm --registry=https://registry.npm.taobao.orgnpm installnpm install -g mochaecho 'test-------start'npm run testecho 'npm--------build'npm run build

图片描述

使用webhooks建立连接

工作原理:在远端仓库上配置一个Jenkins服务器的接口地址,当本地向远端仓库发起push时,远端仓库会向配置的Jenkins服务器的接口地址发起一个带参数的请求,jenkins收到后开始工作。

在github中设置webhooks

图片描述
图中Secret是jenkins的密码,有个选项是想什么时候触发这个钩子,这里默认用push触发钩子\
点击提交完成配置。
其中Payload URL是在jenkins中可以获取的。当本地向远端仓库发起push请求时,会触发jenkins,然后jenkins开始工作。
在jenkins中设置github Hook URL:
图片描述

git push --> 触发webhooks --> jenkins开始工作

jenkins-init

构建结果 --> 通过邮件通知结果

在Jenkins -> 系统设置 -> E-mail Notification 中设置\

在Test e-mail recipient出填写测试邮件地址,就可测试是否能收到邮件
图片描述

然后在jenkins项目中settings -> Post-build Actions设置\

在选择触发器时可选always或failure等触发邮件提醒
图片描述
图片描述

构建结果

jenkins-init

写在最后

jenkins的插件成千上万,功能十分强大,目前实现了自动构建以及邮件提醒功能。本次使用的demo地址为:https://github.com/liujianxi/jenkins-demo。原文地址:https://github.com/liujianxi/share/tree/master/jenkins-demo

转载地址:http://iiino.baihongyu.com/

你可能感兴趣的文章
oracle日常简单数据备份与还原
查看>>
我的友情链接
查看>>
黑马程序员__反射总结
查看>>
Scala学习笔记(5)-类和方法
查看>>
Quartz原理
查看>>
完全卸载oracle|oracle卸载|彻底卸载oracle
查看>>
垃圾收集基础
查看>>
Docker安装及基本命令
查看>>
控制namenode检查点发生的频率
查看>>
Linux存储挂载后,无法正常卸载的解决方法
查看>>
2、递归遍历文件夹下每一个文件
查看>>
Remove auto_increment from Schema Dumps (mysqld...
查看>>
解决activity加上Theme.Translucent.NoTitleBar 页面跳转显示桌面
查看>>
php类库
查看>>
浅谈Java中的对象和引用
查看>>
SQL 注入自我总结
查看>>
Linux线程
查看>>
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>
一个有趣的命令
查看>>
我的友情链接
查看>>