====編譯工作流程(FOR WASU R&D)=====
========
|| 前提條件 ||
========
收到開發人員提交的編譯申請郵件
==========
|| 主要工作流程 ||
==========
1、查看版本說明書(明確編譯的程序工程、數據庫和配置文件變更與否)
2、編譯
3、修改配置(包括數據庫和配置文件的變更)
4、啟動服務(跟蹤日志查看能否正常啟動)
5、版本管理(在版本管理列表中填寫版本記錄,包括版本號、提交時間、需求編號、需求說明等)
===========
|| 詳細操作步驟 || ==========
1、 查看版本說明書
Checkout編譯申請郵件中說明的產品版本說明書到本地,打開查看“更改程序列表(要編譯的程序工程)、數據庫結構變化(如有變化要在數據庫中執行相應的腳本)、配置說明(按照說明更改部署服務器中的配置)”等。
2、編譯
編譯服務器、賬號、路徑和對應產品:
218.*.*.120 compiler/q1w2e3
/compiler/wasuprd 研究院各個產品
218.*.*.68 compiler/com{:>
/compiler/wasu 28.直播廣告管理系統、bootAd等。
/compiler/product 51.華數直播廣告系統
找到要編譯產品的程序工程,執行編譯腳本。
舉例如下:
產品:
賀卡
編譯版本:
1_6_11_1
編譯的工程:
ccp-tv
編譯相關腳本:
build-ccp-tv.xml (執行編譯的腳本)
ccp-tv.sh(啟動編譯的腳本)
編譯操作步驟
1、[compi
ler@yuan_RAC02 wasuprd]$ vi build-ccp-tv.xml 如果是按Tag號進行取代碼編譯,則要先在下面的這段中更改tag.version的value值,然后再執行編譯,默認為空表示取最新的代碼。
<!--================================-->
<!--代碼tag號設置 -->
<!--================================-->
<property name="tag.version" value="ccp-tv1_6_11_1_1"/>
2、[compi
ler@yuan_RAC02 wasuprd]$ sh ccp-tv.sh //執行編譯,執行該命令后平面會打印日志
3、[compiler@yuan_RAC02 wasuprd]$ cd dist/
[compiler@yuan_RAC02 dist]$ cd 20110725
[compiler@yuan_RAC02 20110725]$ mv ccp-tv.war ccp-tv1_6_11_1.war //標記備份war包的版本號:
編譯執行完后,在/compiler/wasuprd/dist下會自動生成一個以當前日期命名的文件夾,文件夾中會有ccp-tv.war的程序包。
3、修改配置
產品部署服務器IP、登錄賬號和配置文件路徑
218.*.*.120 pdtest/zxcasdqwe
218.*.*.68
test/test@edc配置文件路徑都為:/pdtest/config //
個別項目的配置文件可能在tomcat中,請參照啟動腳本中的配置
120服務器的截圖如下:
[pdtest@yuan_RAC02 ~]$ ls
adrPreview config iploader nohup.out product rmlog.sh ssuds.1.0.1 ssuds.1.0.1.build079.tar ssuds.conf start-sp.sh unzip
[pdtest@yuan_RAC02 ~]$ cd config/
[pdtest@yuan_RAC02 config]$ pwd
/pdtest/config
[pdtest@yuan_RAC02 config]$ ls
admin album-server als bh bill-tv bootad ccp-tv cps-tv ers file ipc pws rec saui smc-tv sp-tv tds uaoc ubc vod-epg wsmail
4、啟動服務
登錄服務部署的tomcat下,關閉該tomcat進程,清除work目錄下的內容,執行啟動tomcat的腳本,具體操作命令如下
[pdtest@yuan_RAC02 tv]$ ls
apache-tomcat-5.5.26 bill-picture prp_ccp_logs prp_cps_logs start-tomcat.sh
[pdtest@yuan_RAC02 tv]$ ps -ef | grep 'Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26'
pdtest 24430 1 1 16:00 pts/17 00:00:52 /usr/java/jdk1.5.0_07/bin/java -Xms768M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=256M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/pdtest/product/tv/apache-tomcat-5.5.26/conf/logging.properties -Xdebug -Xrunjdwp:transport=dt_socket,address=3997,server=y,suspend=n -Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26/common/endorsed -classpath :/pdtest/product/tv/apache-tomcat-5.5.26/bin/bootstrap.jar:/pdtest/product/tv/apache-tomcat-5.5.26/bin/commons-logging-api.jar -Dcatalina.base=/pdtest/product/tv/apache-tomcat-5.5.26 -Dcatalina.home=/pdtest/product/tv/apache-tomcat-5.5.26 -Djava.io.tmpdir=/pdtest/product/tv/apache-tomcat-5.5.26/temp org.apache.catalina.startup.Bootstrap bin start
pdtest 30286 21779 0 16:47 pts/15 00:00:00 grep Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26
[pdtest@yuan_RAC02 tv]$ kill -9 24430
[pdtest@yuan_RAC02 tv]$ cd apache-tomcat-5.5.26/
[pdtest@yuan_RAC02 apache-tomcat-5.5.26]$ cd work
[pdtest@yuan_RAC02 work]$ rm -rf *
[pdtest@yuan_RAC02 work]$ cd ../../
[pdtest@yuan_RAC02 tv]$ ls
apache-tomcat-5.5.26 bill-picture prp_ccp_logs prp_cps_logs start-tomcat.sh
[pdtest@yuan_RAC02 tv]$ sh start-tomcat.sh
5、版本管理
版本管理列表在CVS中的路徑:
DOCUMENT\03.產品類\00.產品研發管理\02.SCM\02.版本管理\華數研究院-產品版本列表(New).xlsx
填寫內容包括:
發布日期、Release版本號(紅色標記)、子系統版本號(即提取代碼的Tag號)或標記符號“■”、需求編號、需求描述
######C語言產品編譯補充############
1:編譯服務器、賬號、密碼、產品與路徑
218.*.*.89 wasucpp/wsxasd
/home/wasucpp/XP 交換網關系統
/home/wasucpp/UTCO 統一頭端產品
2:編譯步驟(以utoc為例)
##全量編譯##
-bash-3.00$ pwd
/home/wasucpp/UTCO/utoc
-bash-3.00$ ls
CVS ace apps bin build common conf include lib samples src
-bash-3.00$ cvs update
//更新源代碼
-bash-3.00$ cd build/
-bash-3.00$ ls
CVS Makefile readme.txt
-bash-3.00$ gmake clean
-bash-3.00$ gmake
##增量編譯(本次改動的為apps下的文件)##
-bash-3.00$ pwd
/home/wasucpp/UTCO/utoc
-bash-3.00$ ls
CVS ace apps bin build common conf include lib samples src
-bash-3.00$ cd apps
-bash-3.00$ cvs update //更新源代碼
-bash-3.00$ gmake clean
-bash-3.00$ gmake
CVS是一個很成熟的版本控制系統,CVSACL就是實現訪問控制的CVS補丁。它本身也是一個開源的項目,項目主頁是
http://cvsacl.sourceforge.net/index.html 。它提供了對CVS的模塊、目錄和文件以及分支和tag的高級訪問控制。CVSACL定義了8級不同的訪問權限,分別是:
權限 |
關鍵字 |
說明 |
沒有權限 |
n |
用戶不能做任何cvs操作 |
讀權限 |
r |
可以執行annotate, checkout, diff, export, log, rannotate, rdiff, rlog, status命令 |
寫權限 |
w |
可以執行commit/checkin命令 |
tag |
t |
可以執行tag/rtag命令,依賴讀權限 |
創建 |
c |
可以執行add import 命令 |
刪除 |
d |
可以執行rm命令 |
全部權限 |
a |
可以執行所有cvs命令處理cvsacl管理命令 |
管理權限 |
p |
可以執行所有命令 |
1. 下載CVSACL:
通過如下網址可以下載到CVSACL相關程序,目前最新版本是cvsacl-1.2.5:
https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655
cvsacl-1.2.5-for-cvs-1.11.22.tar.gz
cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
2. 安裝CVSACL:
安裝方法:cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost setup_cvs]# tar -zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz // 解壓縮cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost setup_cvs]# mv cvs-1.11.22-cvsacl-1.2.5-patched cvs-1.11.22 // 修改cvs-1.11.22-cvsacl-1.2.5-patched目錄名稱為 cvs-1.11.22
[root@localhost setup_cvs]# cd cvs-1.11.22 // 進入cvs-1.11.22
[root@localhost cvs-1.11.22]# ./configure // 編譯安裝
[root@localhost cvs-1.11.22]# make
[root@localhost cvs-1.11.22]# make install
[root@localhost setup_cvs]# cvs –version // 查看cvs版本
Concurrent Versions System (CVS) 1.11.22 (client/server)
with CVSACL Patch 1.2.5 (cvsacl.sourceforge.net)
注:不需要特意刪除舊版本的CVS。
3. 修改aclconfig配置文件
[newcvsroot@localhost CVSROOT]$ vi aclconfig // 該配置文件在cvs根目錄的CVSROOT下,如/data/cvs/CVSROOT/
UseCVSACL=yes // 行首去除“#”,啟用該配置項。
UseSystemGroups=yes // 行首添加“#”,注釋該配置項。
UseCVSGroup=yes // 行首去除“#”,啟用該配置項。
3. 創建用戶和組進行賦權
[newcvsroot@localhost CVSROOT]$ pwd
/datanew/cvs/CVSROOT // 創建用戶和組要在CVSROOT下進行,并且執行用戶必須是CVSROOT對應的屬主用戶,即newcvsroot,該用戶在搭建cvs服務器時配置。
[newcvsroot@localhost CVSROOT]$ htpasswd -b passwd username passwd // 新增用戶并設定密碼,已有用戶的密碼更新也可用該命令。
[newcvsroot@localhost CVSROOT]$ vi passwd
kevins:*******:newcvsroot // 將passwd文件中的所有cvs用戶映射到同一個系統用戶newcvsroot上。
[newcvsroot@localhost CVSROOT]$ vi group
文件格式:
group1:x:10:ii,kevins,ava // 用戶之間用 “,”分隔,“ii”為無效的首個用戶。
注:cvsacl有個bug,必須在組用戶最前邊添加一個不存在的cvs用戶,group文件才會生效,原因不明,但此方法確實管用。
4. 使用cvsacl細化權限:
[cvsroot@localhost CVSROOT]$ cvs -d /data/cvs racl ccp:wtcd -R CODE/03.PRODUCT/12.CCP
說明:
/data/cvs:cvs服務器的根目錄
ccp:用戶或用戶組
wtcd:一般賦“讀寫”權限時用這個組合,詳細說明見本文“CVSACL定義了8級不同的訪問權限”表格
CODE/03.PRODUCT/12.CCP:配置庫中的Module(模塊)路徑
格式:cvs –d 配置庫位置 racl [用戶||組:權限] [-Rl] [-r tag] [模塊…] [文件…]
- R 進行目錄遞歸
- r rev 設定版本/標簽
- l 列出已定義的ACLs權限
備注:該賦權命令要在CVSROOT目錄中執行,執行完后vi access進行查看是否已寫入權限文件中。