svn程式碼發版的指令碼分享

散盡浮華發表於2016-09-14

 

背景:開發將其程式碼放到svn裡面,如何將修改後存放到svn裡的程式碼釋出到線上?
簡單做法:寫個shell指令碼,用於程式碼發版。比如開發的程式碼存放svn的路徑是:svn://112.168.19.120/huanqiu_app

首先在釋出機上建立一個發版目錄
[root@huanqiu ~]# mkdir -p /Data/webroot_svncode/Online_app

然後將svn裡的程式碼下載到釋出機本地的發版目錄裡
[root@huanqiu ~]# cd /Data/webroot_svncode/Online_app
[root@huanqiu Online_app]# svn checkout svn://112.168.19.120/huanqiu_app             //svn checkout一般都是目錄
[root@huanqiu Online_app]# ls
huanqiu_app
[root@huanqiu Online_app]# cd huanqiu_app
[root@huanqiu huanqiu_app]# ll
huanqiu.war                   //這個就是開發放在svn倉庫裡的war包

這樣後面要想再將svn裡最新修改的程式碼拿到釋出機本地,只需要切換到發版目錄下的svn目錄裡進行更新命令即可!
[root@huanqiu Online_app]# cd huanqiu_app           //一定要切換到svn對應程式碼目錄下進行更新命令
[root@huanqiu huanqiu_app]# /usr/bin/svn update
At revision 20.
[root@huanqiu huanqiu_app]# ll                    //下面就是更新後的最新程式碼包
huanqiu.war

下面附上一個簡單的發版指令碼:
將程式碼釋出到遠端線上伺服器上(指令碼中的22022是遠端伺服器的ssh埠);即將最新程式碼版本釋出到線上後,重啟線上的tomcat服務:

[root@huanqiu huanqiu_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/huanqiu_app
/usr/bin/svn update

/usr/bin/ssh -p22022 root@${REMOTE_SERVER_IP} "rm -rf /Data/app/tomcat-7/webapps/huanqiu*";
/usr/bin/rsync -e "/usr/bin/ssh -p22022" -avpgolr /Data/webroot_svncode/Online_app/huanqiu_app/huanqiu.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";

相關文章