Jenkins + SVN搭建php持续集成
目标需求
开发提交代码到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持续集成的更多相关文章
- Jenkins + svn + maven 构建持续集成环境搭建
Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...
- Jenkins+svn+ant+tomcat持续集成
转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...
- jenkins下搭建c++持续集成环境
运行环境为centos 5.8 1.下载tomcat,并解压 2.下载jenkins,把jenkins.war放到tomcat的webapp目录下 3.在tomcat的bin目录下执行./star ...
- Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...
- Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...
- 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...
- Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建
详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...
- Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置 by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...
- .NET作品集:基于svn 的.net 持续集成工具
作品背景 这个.net 持续集成作品还是在2014年的时候从事.net 软件项目开发的时候做的,当时部门还用着vs2008用vb.net做项目(现在也是),项目代码极混乱,版本工具用的vss,而且用的 ...
随机推荐
- InChatter系统之本地化
InChatter现在支持本地化了,其实这个只是很细节的东西,但是咱也是可以走走国际范.哈哈 其实最重要的原因只是想进行一次本地化的开发.这个概念相信大部分人都有,但是在实际项目中真的很少会涉及到,我 ...
- swal用法
swal({ title: "确认删除?", text: "Your will not be able to recover this imaginary fil ...
- Swift - 值类型与引用类型的初步探究
前言 swift中的结构体和类在组成和功能上具有一定的相似性.两者都可以含有成员属性.成员方法用于数据存储和功能性模块封装.往往造成不知如何对二者进行区分和使用 值类型概念和引用类型概念 值类型的概念 ...
- Spring工作原理及其作用
1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherServlet查询一个或多个Hand ...
- STL:set的使用
关于set set是以特定的顺序存储相异元素的容器. set是关联式容器,C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树 ...
- 简单说一下 TCP打洞和UDP打洞
1, TCP协议通信: 现在有两台电脑A和B.在 假设A的地址为 192.168.0.100 假设B的地址为 192.168.0.102 A想给B发送一个字符串Hello, 如果A,B之间采用TCP ...
- CAS机制总结
一.简介 CAS机制:(Compare and set)比较和替换 简单来说–>使用一个期望值来和当前变量的值进行比较,如果当前的变量值与我们期望的值相等,就用一个新的值来更新当前变量的值CAS ...
- 给SVN控制的项目添加忽略文件/文件夹
忽略目录其实有些像建立一个文件夹,但却不放入版本控制.如果不加入版本控制又会在svn status命令中显示出来,很不方便,所以可以设置本文件夹属性,让它既加入版本控制,又忽略其变化 未加入控制的文件 ...
- 打印出A到Z的所有字符,使用char和int转换
public class Demo14{ //A到Z的所有字符,使用char和int转换 public static void main(String[] args) { for(int i = 65 ...
- 第2节 mapreduce深入学习:9、手机上行流量排序
还是上次那个例子,需求二:上行流量倒序排序(递减排序) 分析,以需求一的输出数据作为排序的输入数据,自定义FlowBean,以FlowBean为map输出的key,以手机号作为Map输出的value, ...