svn代碼發版的腳本分享

 

背景:開發將其代碼放到svn裏面,如何將修改後存放到svn裏的代碼發佈到線上?
簡單作法:寫個shell腳本,用於代碼發版。好比開發的代碼存放svn的路徑是:svn://112.168.19.120/kevin_appweb

首先在發佈機上建立一個發版目錄
[root@kevin ~]# mkdir -p /Data/webroot_svncode/Online_app
 
而後將svn裏的代碼下載到發佈機本地的發版目錄裏
[root@kevin ~]# cd /Data/webroot_svncode/Online_app
[root@kevin Online_app]# svn checkout svn://112.168.19.120/kevin_app             //svn checkout通常都是目錄
[root@kevin Online_app]# ls
kevin_app
[root@kevin Online_app]# cd kevin_app
[root@kevin kevin_app]# ll
kevin.war                   //這個就是開發放在svn倉庫裏的war包
 
這樣後面要想再將svn裏最新修改的代碼拿到發佈機本地,只須要切換到發版目錄下的svn目錄裏進行更新命令便可!
[root@kevin Online_app]# cd kevin_app           //必定要切換到svn對應代碼目錄下進行更新命令
[root@kevin kevin_app]# /usr/bin/svn update
At revision 20.
[root@kevin kevin_app]# ll                    //下面就是更新後的最新代碼包
kevin.war
 
下面附上一個簡單的發版腳本:
將代碼發佈到遠程線上服務器上(腳本中的22022是遠程服務器的ssh端口);即將最新代碼版本發佈到線上後,重啓線上的tomcat服務:
 
[root@kevin kevin_app]# cat /Data/webroot_svncode/up_Online.sh
#!/bin/bash
REMOTE_SERVER_IP="112.168.19.75"
DEST_DIR="/Data/app/tomcat-7/webapps/"
 
cd /Data/webroot_svncode/Online_app/kevin_app
/usr/bin/svn update
 
/usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "rm -rf /Data/app/tomcat-7/webapps/kevin*";
/usr/bin/rsync -e "/usr/bin/ssh -p22022" -avpgolr /Data/webroot_svncode/Online_app/kevin_app/kevin.war root@${REMOTE_SERVER_IP}:${DEST_DIR};
sleep 10
 
/usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "/bin/sh /Data/app/tomcat-7/start.sh";
相關文章
相關標籤/搜索