热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jenkins持续集成配置备忘

配过好几次,但是老忘记。记录备忘。安装下列插件:ssh和git插件用来下载源码publishoverssh插件用来发布代码到测试环境。email插件用来更强大的email配置。file那个插件

配过好几次,但是老忘记。记录备忘。

 

安装下列插件:

ssh和git插件用来下载源码

publish over ssh 插件用来发布代码到测试环境。

email插件用来更强大的email配置。

file那个插件用来定制配置文件.

在jenkins的全局配置中,配置Maven(包括私服的setting文件、指定jar包存储目录)、Git、JDK、Ant

 

 

然后配置Extended E-mail Notification全局的邮件设置(包括smtp地址、邮箱账号及密码)

 

或者默认的邮件配置:

 

然后新建工程,配置源码库为git地址(当然,需要先把jenkins机器上的公钥发给git Server开通权限):

配置触发器,比如设置每天早上9点触发一次:

 

 

配置构建后自动发邮件:

不要勾选jenkins默认的邮件通知

选择构建后步骤,使用email插件发邮件:

设置邮件标题、模板、默认收件人:

 

点击邮件通知下方的addvance settings设置发邮件的场景:

设置邮件中添加构建日志,Triggers设置编译失败、测试用例失败才发邮件,收件人为默认收件人+代码提交者+造成失败的相关人。

 

然后保存项目设置就OK。

 

 

到了9点会自动触发,如果失败会受到一封邮件:

 

 

邮件模板备忘:

标题:

构建通知: ${PROJECT_NAME} - Build - ${BUILD_STATUS}! # ${BUILD_NUMBER}

正文:

<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志title>
head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset
="0">
<table width="95%" cellpadding="0" cellspacing="0"
style
="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>本邮件由系统自动发出,请勿回复!td>
tr>
<tr>
<td><h2>
<font color="#CC0000">构建结果 - ${BUILD_STATUS}font>
h2>td>
tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息font>b>
<hr size="2" width="100%" align="center" />td>
tr>
<tr>
<td>
<ul>
<li>项目名称  ${PROJECT_NAME}li>
<li>构建编号  第${BUILD_NUMBER}次构建li>
<li>GIT 版本: ${GIT_COMMIT}li>
<li>触发原因: ${CAUSE}li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}consolea>li>
<li>构建  Url  <a href="${BUILD_URL}">${BUILD_URL}a>li>
<li>工作目录  <a href="${PROJECT_URL}ws">${PROJECT_URL}wsa>li>
<li>项目  Url  <a href="${PROJECT_URL}">${PROJECT_URL}a>li>
ul>
td>
tr>
<tr>
<td><b><font color="#0B610B">Changes Since Last
Successful Build:
font>b>
<hr size="2" width="100%" align="center" />td>
tr>
<tr>
<td>
<ul>
<li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changesa>li>
ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%mpre>",pathFormat="    %p"}
td>
tr>
<tr>
<td><b>Failed Test Resultsb>
<hr size="2" width="100%" align="center" />td>
tr>
<tr>
<td><pre
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTSpre>
<br />td>
tr>
<tr>
<td><b><font color="#0B610B">构建日志 (最后 100行):font>b>
<hr size="2" width="100%" align="center" />td>
tr>

<tr>
<td><textarea cols="80" rows="30" readonly="readonly"
style
="font-family: Courier New">${BUILD_LOG, maxLines=100}textarea>
td>
tr>
table>
body>
html>

 

 

下面是ssh发布脚本:

先在公共配置的Publish over SSH处添加几个ssh的server:

 

 

 

然后在项目中:

脚本如下:

projectName=portal
tomcatPath
=/main/apache-tomcat-7.0.54
JAVA_HOME
=/main/jdk1.7.0_71
export JAVA_HOME
JAVA_OPTS
="-Xms512m -Xmx2048m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"
export JAVA_OPTS
timestamp
=`date '+%Y-%m-%d_%H:%M:%S'`
mkdir $tomcatPath/lastVersion
cp $tomcatPath/temp/$projectName.war $tomcatPath/lastVersion/$projectName.$timestamp.war
kill -9 `ps aux|grep $tomcatPath |grep -v grep |grep java |awk '{print $2}'`
rm -rf $tomcatPath/webapps/$projectName
rm -rf $tomcatPath/webapps/$projectName.war
rm -rf $tomcatPath/webapps/ROOT
rm -rf $tomcatPath/webapps/ROOT.war
rm -rf $tomcatPath/work/*
mv $tomcatPath/temp/$projectName.war $tomcatPath/webapps/ROOT.war
$tomcatPath/bin/startup.sh

就可以发布了。

 

配置文件替换待续。(通过一个provide config file插件实现)


推荐阅读
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 通过纯CSS技术,可以轻松创建精致的小圆点和三角形图形。本文详细介绍了如何利用CSS的伪元素、边框和背景属性,实现这些图形的高效绘制,并提供了多种应用场景和示例代码,帮助开发者在网页设计中增添更多视觉效果。 ... [详细]
  • 在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • 使用PyQt5与OpenCV实现电脑摄像头的图像捕捉功能
    本文介绍了如何使用Python中的PyQt5和OpenCV库来实现电脑摄像头的图像捕捉功能。通过结合这两个强大的工具,用户可以轻松地打开摄像头并进行实时图像采集和处理。代码示例展示了如何初始化摄像头、捕获图像并将其显示在PyQt5的图形界面中。此外,还提供了详细的步骤说明和代码注释,帮助开发者快速上手并实现相关功能。 ... [详细]
  • gitlab+jenkins_gitlab+jenkins+docker
    gitlab+jenkins_gitlab+jenkins+docker ... [详细]
author-avatar
宝宝717917
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有