目标需求

开发提交代码到SVN,jenkins在分发服务器上执行'svn update',分发服务器在把代码同步到webserver,实现持续集成

流程

配置jenkins

一、jenkins所需插件

Ant Plugin
bouncycastle API Plugin
Branch API Plugin
build timeout plugin
Credentials Binding Plugin
Credentials Plugin
CVS Plug-in
Display URL API
Durable Task Plugin
Email Extension Plugin
Email Extension Template Plugin
External Monitor Job Type Plugin
Folders Plugin
Git client plugin
Git plugin
GIT server Plugin
GitHub API Plugin
GitHub Branch Source Plugin
GitHub Organization Folder Plugin
GitHub plugin
Gradle Plugin
Hudson WebSVN2 plugin
Icon Shim Plugin
Javadoc Plugin
JavaScript GUI Lib: Handlebars bundle plugin
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin
JavaScript GUI Lib: Moment.js bundle plugin
JUnit Plugin
LDAP Plugin
Mailer Plugin
MapDB API Plugin
Matrix Authorization Strategy Plugin
Matrix Project Plugin
OWASP Markup Formatter Plugin
PAM Authentication plugin
Pipeline
Pipeline Graph Analysis Plugin
Pipeline: API
Pipeline: Basic Steps
Pipeline: Build Step
Pipeline: Groovy
Pipeline: Input Step
Pipeline: Job
Pipeline: Milestone Step
Pipeline: Multibranch
Pipeline: Nodes and Processes
Pipeline: REST API Plugin
Pipeline: SCM Step
Pipeline: Shared Groovy Libraries
Pipeline: Stage Step
Pipeline: Stage View Plugin
Pipeline: Step API
Pipeline: Supporting APIs
Plain Credentials Plugin
Publish Over FTP
Publish Over SSH
Resource Disposer Plugin
SCM API Plugin
Script Security Plugin
SSH Credentials Plugin
SSH plugin
SSH Slaves plugin
SSH2 Easy Plugin
Structs Plugin
Subversion Plug-in
Subversion Revert Plugin
SVN 1.3 Compatibility Plugin
SVN 1.4 Compatibility Plugin
SVN Publisher plugin
svnmerge plugin
Terminate ssh processes
Timestamper
Token Macro Plugin
Tracking SVN Plugin
Windows Slaves Plugin
Workspace Cleanup Plugin

二、配置jenkins的SSH remote hosts

目的:由于jenkins服务器需要登录到分发服务器,所以得配置一下

jenkins首页--系统管理--系统设置

三、配置一个项目

配置代码仓库

配置构建

配置构建后操作,实现构建完成发邮件

四、脚本

分发服务器:项目脚本--wx.sh

vim /alidata1/shell/wx.sh
#!/bin/bash
ip="231.201.53.173 221.201.116.12"
local_dir_wx="/alidata1/project/wx" target_dir_wx="/opt/www" function wx(){ #实现把代码从分发服务器同步到web服务器
for i in $ip;do
rsync -pav -e"ssh -p7789" --delete --exclude=cache --exclude=logs --exclude=.svn --exclude="database.php" $local_dir_wx root@$i:$target_dir_wx >> /dev/null
done
} #备份并删除源代码
ssh -p7789 root@231.201.53.173 'sh /alidata1/shell/backup_project.sh wx' #在web服务器上执行,把源代码备份
ssh -p7789 root@221.201.116.12 'sh /alidata1/shell/backup_project.sh wx' #rsync wx_project bj1 to bj2&bj4
wx

web服务器:备份脚本

   vim /alidata1/shell/backup_project.sh
  #!/bin/bash
date1=`date +"%F-%H:%M"` src=/opt/www function wx(){
cd $src
tar -czvf /alidata1/rollback_project/wx/wx_$date1.tar.gz ./wx/*
} function api3(){
cd $src
tar -czvf /alidata1/rollback_project/api3/api3_$date1.tar.gz ./api3/* }
function admin(){
cd $src
tar -czvf /alidata1/rollback_project/admin/admin_$date1.tar.gz ./admin/* } function activity(){
cd /alidata1/www/timecash22
tar -czvf /alidata1/rollback_project/activity/activity_$date1.tar.gz ./activity/* }
if [ $1 == "wx" ]
then
wx
elif [ $1 == "api3" ]
then
api3
elif [ $1 == "admin" ]
then
admin
elif [ $1 == "activity" ]
then
activity
else
break
fi

  

  

Jenkins + SVN搭建php持续集成的更多相关文章

  1. Jenkins + svn + maven 构建持续集成环境搭建

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

  2. Jenkins+svn+ant+tomcat持续集成

    转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...

  3. jenkins下搭建c++持续集成环境

      运行环境为centos 5.8 1.下载tomcat,并解压 2.下载jenkins,把jenkins.war放到tomcat的webapp目录下 3.在tomcat的bin目录下执行./star ...

  4. Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...

  5. Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...

  6. 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境

    使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...

  7. Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建

    详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...

  8. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

  9. .NET作品集:基于svn 的.net 持续集成工具

    作品背景 这个.net 持续集成作品还是在2014年的时候从事.net 软件项目开发的时候做的,当时部门还用着vs2008用vb.net做项目(现在也是),项目代码极混乱,版本工具用的vss,而且用的 ...

随机推荐

  1. Node.js——post方式提交的图片如何保存

    https://www.cnblogs.com/bruce-gou/p/6399766.html 没有使用express框架,主要是对于 request 的监听,data的时候对数据进行保存,end的 ...

  2. Vue.js语法糖整理

    el:element 需要获取的元素,一定是HTML中的根容器元素 data:用于数据的存储 methods:用于存储各种方法 数据绑定字面量只加载一次{{* msg}} data里面可以进行简单的运 ...

  3. CREATE USER - 创建一个新的数据库用户帐户

    SYNOPSIS CREATE USER name [ [ WITH ] option [ ... ] ] where option can be: SYSID uid | [ ENCRYPTED | ...

  4. java去左右的空格(包括全角空格,tab,回车等)

    在开发中我们会遇到需要去除左右空格的需求,如果只是简单的空格,调一下trim()方法即可,但如果有中文全角.回车等看起来是空格的非空格,则需要自定义来开发实现,下面这个工具可以实现去左右那些看起来是空 ...

  5. Perl语言入门:第六章习题:处理用户所指定的名字并汇报相应的姓。

    37 print "\n----------------------------------_exercise_6_1--------------------------\n";  ...

  6. vue -vantUI tab切换时 list组件不触发load事件解决办法

    最近由于公司项目需要,用vue写了几个简单的页面.用到了vantUI List 列表 瀑布流滚动加载,用于控制长列表的展示 当列表即将滚动到底部时,会触发事件并加载更多列表项. (页面加载完成后默认会 ...

  7. 笔试算法题(38):并查集(Union-Find Sets)

    议题:并查集(Union-Find Sets) 分析: 一种树型数据结构,用于处理不相交集合(Disjoint Sets)的合并以及查询:一开始让所有元素独立成树,也就是只有根节点的树:然后根据需要将 ...

  8. 零基础入门学习Python(5)--闲聊之Python的数据类型

    前言 本次主要闲聊一下python的一些数值类型,整型(int),浮点型(float),布尔类型(bool),还有e记法(科学计数法),也是属于浮点型. 数值类型介绍 整型 整型就是我们平时所说的整数 ...

  9. CentOS 6, 编译安装lamp (php-fpm)

    1 整体要求 php-fpm.httpd.mysql三者分别安装在三台虚拟机上: 第一台虚拟主机用于安装Mariadb,第二台虚拟主机安装php-fpm:第三台虚拟主机安装httpd.三台主机安装完之 ...

  10. uva 327 - Evaluating Simple C Expressions

     Evaluating Simple C Expressions  The task in this problem is to evaluate a sequence of simple C exp ...