1)開發(fā)人員提交代碼到SVN服務器,系統(tǒng)判定是否有要執(zhí)行的交付目標配置,如果沒有則通知測試人員使用圖形化客戶端按照交付目標構建配置。
2)Jenkins定時檢測到代碼有更新,鎖定更新代碼工程(定時觸發(fā)策略需要按照實際情況進行設定)。
3)Jenkins進行自動化編譯,并觸發(fā)存儲機制,存儲最新的程序包并記錄版本。
4)Jenkins通過Ansible plugin通知Ansible執(zhí)行測試劇本。
5)持續(xù)集成后臺服務通過回調函數(shù)監(jiān)聽到操作指令,調用接口在OpenStack自動開辟新的資源并創(chuàng)建新的虛擬機、虛擬服務(數(shù)據(jù)庫等),執(zhí)行分發(fā)、配置、啟動等整套安裝部署動作)。
6)觸發(fā)測試動作,進行自動化測試,記錄測試報告并分發(fā)測試結果到通知郵箱。
7)觸發(fā)掃描程序對測試報告進行掃描,判定程序測試是否通過。
8)如果測試掃描結果表示測試通過,則把測試版本作為正式版本發(fā)布到一套正式的環(huán)境中,另本次運行包以序號加時間為命名方式自動打包發(fā)送到SVN版本庫統(tǒng)一保存,方便后續(xù)突發(fā)回滾操作使用。
9)測試版本轉換到正式環(huán)境后,突發(fā)情況發(fā)現(xiàn)最新的正式版本有重大bug未被檢測到,需要緊急下線并回滾并從SVN調取本版本的上一歷史版本進行版本恢復操作。
10)銷毀測試使用的OpenStack虛擬機,并釋放資源。
1)B/S(browser/server,瀏覽器/服務器模式)架構非開源系統(tǒng)的持續(xù)化集成。
2)C/S(client/server,客戶機/服務器模式)架構的非開源系統(tǒng)的持續(xù)化集成。
3)任意節(jié)點的分布式基礎環(huán)境開源組件自動部署。