Jenkins拉取github库代码执行构建
前言
上篇文章写了关于定时构建,以及构建后发送邮件的内容,但是构建时运行的代码是我们手动添加到Jenkins工作空间的。这篇文章我们说一说自动从GitHub远程库拉取代码,执行构建,废话不多说,开始!(开始之前,我们需要安装GitHub插件:GitHub plugin 如何安装自行百度吧)
新建项目
仍然和上一篇文章一样,我们新建一个自由风格的项目(我这里就不新建了 我直接在原有的项目基础上配置)
获取GitHub地址
我们项目所在路径的地址
项目配置
General
输入项目描述, 勾选Github project, 输入远程项目地址
源码管理
其实我们在安装github的时候需要配置公钥(git如何安装和使用自行百度),那么我们拉取远程库代码就需要配置私钥
Git的私钥文件
一般安装Git的时候,生成的公钥和秘钥都默认在下面这个目录下
源码管理我们勾选Git,并点击【添加】
弹出框中按照标记内容进行添加
构建触发器
这里时间间隔的设置自己设置把,我这个保留上篇文章的设置,我没有动
构建环境
我们这里选择每次构建之前清空一下Jenkins工作空间,避免拉取的代码有冲突
构建
选择执行windows批处理命令
构建后的操作
构建后的操作我们仍然使用上篇文章的设置,只发送一个带附件的邮件(与上篇一致)
修改下面的配置如图
结果展示
接下来我们保持Jenkins工作空间(workspace下面已项目名称命名的文件夹)的代码不动(为了测试构建之前是否会自动删除工作空间),构建开始时看下是否会自动拉取GitHub代码进来
我们直接手动构建(手动构建没问题,只要设置的定时构建语法没问题,到时间会自动构建的)
Jenkins工作空间
可以看到清空的文件夹已经拉取到了GitHub上面的项目代码,原来的代码已经删除了
Jenkins日志
控制台日志可以看到构建之前已经执行了删除工作空间的操作和克隆远程代码,再看下QQ邮箱是否收到报告
QQ收件箱
正文
附件
再看一下我们的报告是否也正常,报告目录下只有一个最新的报告
最后
是不是很完美, 当看到成功构建那一刻还是小有成就感的,好了,赶紧动手试一试!
原文地址:https://www.cnblogs.com/linuxchao/p/linuxchao-Jenkins-GitHub.html
- 很简单的企业管理器---我写程序的方式,几个自定义控件。
- 使命必达: 深入剖析WCF的可靠会话[原理揭秘篇](上)
- 其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码)
- 为Symfony2和Redis正名,基于PHP的10亿请求/周网站打造
- 如何使用Python基线预测进行时间序列预测
- 如何使用统计显着性检验来解释机器学习结果
- 其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感
- WCF服务端运行时架构体系详解[上篇]
- 使命必达: 深入剖析WCF的可靠会话[编程篇](下)
- 在网页里让文本框只能输入数字的一种方法。外加回车换Tab
- 如何用Python从零开始实现简单的线性回归
- 使命必达: 深入剖析WCF的可靠会话[编程篇](上)
- 页面回发后,让页面自动滚动到指定位置的一种简单的方法
- [自定义服务器控件] 第二步:下拉列表框。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- cocos creator使用protobuf实现网络模块
- 简单聊聊红黑树(Red Black Tree)
- cocos creator探照灯效果实现
- servlet/filter/listener/interceptor区别与联系
- Linux下文本的简单处理(awk和sed)
- Spring4定时器 cronTrigger和simpleTrigger实现方法
- Tomcat远程调试
- IDEA建立Spring MVC Hello World 详细入门教程
- 嗯,手搓一个TinyPng压缩图片的WebpackPlugin也SoEasy啦
- Spring源码解析——核心类介绍
- IO之Basic IO
- 静态方法中注入bean
- 高通量数据中批次效应的鉴定和处理(五)- 预测并校正可能存在的混杂因素
- JVM 学习笔记(一)
- JVM 学习笔记(二)