穆榮,劉欣,王曉路
(西安科技大學信息網絡中心,陜西西安710054)
基于Jenkins的WPS for iOS的自動構建服務器的設計
穆榮,劉欣,王曉路
(西安科技大學信息網絡中心,陜西西安710054)
通過了解持續集成的研究現狀,分析了構建WPS所存在的問題,設計了基于Jenkins服務器自動構建iOS測試包的系統,驅動Xcode自動更改項目配置文件參數,實現了定時構建、一鍵構建、定制化構建和郵件通知等功能,消除了人工配置Xcode進行構建的煩瑣性,縮短了構建時間,減輕了工作的壓力。該服務器能夠讓多步操作變成一鍵操作,還可以定時自動構建,最后群發實時郵件通知構建結果,使工作效率得到了提升。
持續集成;Jenkins;Xcode;自動構建
眾所周知,軟件產品開發的時機和速度決定了產品的受歡迎程度,更有甚者,剛剛研發的產品一上市就有可能被淘汰。因此,這使得開發軟件產品的復雜程度提升不少。為了縮減開發時間,除了在技術上要不斷提升,且需要進一步充實開發團隊。軟件研發必然要面臨如何在保證整個團隊協同、高效工作的同時,確保軟件產品的質量的問題。持續集成就是在這樣的大環境下不斷發展起來的,且持續集成可以很好地解決上述問題。
持續集成主要就是要求研發團隊實時集成開發人員的代碼及需求,需要大量進行構建工作。傳統的構建打包方式非常煩瑣,每次打包都需要針對不同的版本修改一些內容,加之系統認證需要的簽名和證書,因此,為了節省人力和物力,每次集成研發人員在工作之后需要通過自動化構建來完成打包工作,這個過程主要解決人工構建的煩瑣性,節省因構建浪費的時間,簡化開發以及測試所需求的多種定制化構建。用Jenkins服務器作為平臺構建測試包,能夠讓多步操作變成一鍵操作,還可以定時自動構建,群發實時郵件通知,提高工作效率。自動構建服務器中的每一個環節都是根據配置的信息和腳本代碼自動運行的,通過使用該服務器可以達到縮短構建時間以及降低測試人員工作量的目的。
基于Jenkins平臺所構建的WPS for iOS測試包,可以用來解決存在的主要問題有:①WPS項目版本多,有中文版、國際版、企業版和日文版等眾多版本。每個版本內部都涉及大量的不同參數變更,已經無法借助Xcode來維護,必須借助腳本來修改這些參數,防止人為修改出現眾多紕漏;②WPS項目配置文件多,整個WPS項目共包含幾百個配置文件,每個配置文件都需要修改簽名、證書和Version等信息,這么大的工作量也是WPS項目面臨的一個問題;③WPS項目打包批次多,不同的測試工作需要不同的測試包,且日常工作中還有很多分支項目,需要構建每個項目分支的測試包,所以,頻繁地構建多版本的WPS測試包也是該項目面臨的問題之一。綜上所述,傳統的手工構建已經遠遠不能滿足WPS項目的需求,需要自動構建測試包來解決以上問題。
通過Jenkins可以將手動Xcode構建的操作轉化為自動構建,并用腳本代碼來實現修改配置文件,以此來構建不同需求的ipa包,核心的設計如下:①從SVN代碼庫中下載產品代碼,通過Jenkins服務器來配置WPS項目SVN源代碼庫的地址,最后輸入賬戶和密碼即可成功下載代碼。②根據需求通過腳本修改代碼中對應的配置文件,這個過程是系統的核心,也是技術要求最高的部分,需要通過代碼詳細配置幾百份項目文件,成功驅動Xcode自動構建。③構建app測試包,通過Xcode完成項目文件配置,然后Xcode build負責將工程源文件編譯成.app的測試包;④將APP包壓縮為ipa包后從本地移到測試服務器上,使用Xcode build工具將代碼編譯后,將.app格式轉換為.ipa格式的測試包。此時,可以通過Xcode自帶的命令Xcrun語句就可以將app包壓縮為ipa測試包,即Xcrun-sdk iphoneos Packageapplication-v $appfolder/Build/Products/${BUILD_CONFIG}-iphoneos/ $BUILD_ScHEME.app-o$WORKSPAcE/build/$BUILD_ ScHEME$SVN_REVISION$BUILD_MARK.ipa。上述-v后面是app文件及所在路徑,-o后面則是存放的ipa文件名及預存放的位置。⑤發送郵件至全體工作人員,借助安裝的郵件插件,通過配置接收和發送人員郵箱地址信息以及STMP服務器,編寫固定的郵件格式的代碼發送至全體工作人員。
基于Jenkins的WPS for iOS的自動構建服務器,以Jenkins服務器為平臺,主要通過調用Shell腳本和OC程序驅動Xcode自動修改項目配置文件的眾多信息,最后自動構建服務器。該服務器提供的主要功能包括WPS for iOS多種測試安裝包的定制化構建、一鍵構建、定時構建以及郵件通知,具體內容如下。
定制化構建就是根據具體的測試需求打出相應的測試包。WPS項目大致包含中文版測試包、英文版測試包、中文高版本測試包以及帶有Today特性的測試包等。每一種測試包都有自己的特點,所以,打不同版本的測試包就需要構建不同的工程,通過修改各自對應的配置參數以及腳本代碼,來實現定制化構建。
一鍵構建主要是指構建時只需要點擊已建工程后的執行構建按鈕,就可以自動構建,整個過程通過工程中的配置參數和腳本自動執行,無需手動操作。執行一鍵構建之后,在服務器主頁面會顯示相應的工程執行情況,工程執行完之后,會有明顯的圖標顯示是否執行成功。除此之外,帶有顯示天氣狀況的圖標表示構建的穩定程度,分數越高則構建越穩定。穩定程度從高到低依次為晴天(80+)、多云(60~79)、陰天(40~59)、陰雨(20~39)和閃電(0~19),分數低于80表示構建不穩定。
定時構建是指按照預先設定的時間自動進行構建,這個功能實現起來較為方便,只需要在構建觸發器模塊選擇Poll SCM選項,并在其中輸入定時的命令即可。這個功能的優點是可以利用晚上和周末空閑時間進行構建工作,這樣不僅提高了工作人員上班時的工作效率,還可以設定任意時間構建,防止測試人員因工作忙而忘記構建工作。定時構建只需要在相應的插件中寫入具體執行構建時間的語句,就可以做到定時構建。
郵件是目前非常重要的溝通交流工具之一,所有與工作相關的信息都可以通過郵件的形式通知對方。在安裝了郵件插件之后,我們可以通過配置接收和發送郵件人員的郵箱地址等信息,在構建完成后自動將郵件發送到個人郵箱中,使人們的工作聯系更加緊密。
WPS是一款非常成熟的軟件,目前很多國家的人都在使用這款辦公軟件,因此WPS推出了眾多版本。使用Jenkins服務器部署自動構建,解決了人工配置Xcode進行構建的復雜性問題,縮短了構建時間,減輕了工作的壓力。該服務器能夠讓多步操作變成一鍵操作,還可以定時自動構建,群發實時郵件通知構建結果,使工作效率得到很大的提升。
[1]段清蛇,李筠.基于Jenkins的持續集成測試環境插件開發[J].信息技術,2013(10).
[2]林新黨,穆加艷.基于Jenkins的持續集成系統研究[J].雷達與對抗,2014(01).
[3]朱紅,仇潤鶴.基于Jenkins的移動通信業務自動化測試平臺的設計與測試[J].科技與創新,2016(07).
[4]趙杰昌,張良宇.基于Jenkins構建持續集成系統[J].電腦編程技巧與維護,2014(09).
[5]周瑩,歐中紅,李俊.基于Jenkins的持續集成自動部署研究[J].計算機與數字工程,2016(02).
〔編輯:張思楠〕
TP311.52
A
10.15913/j.cnki.kjycx.2017.18.117
2095-6835(2017)18-0117-02
穆榮(1979—),女,陜西人,工程師,碩士研究生,主要從事網絡建設、網絡管理、服務器管理、教育信息化項目建設等工作。