這裹我會用Tinyboy開源3D打印機計劃的網頁做例子,講解怎樣用Github及Travis-CI來管理網頁的發佈,設定好後絕大部份的發佈工作都可以經Github的介面完成,不用裝FTP,也不用碰網頁服務器,而且所有發佈都有記錄可尋,隨時都能回復(Rollback)到舊版本。
理論上以下的框架也可以應用到其他軟件的自動化部署上,需要的是只是按個別需求客制化。
S3是Amazon提供的檔案伺服器,功能繁多,包括存放靜態網頁,因為價錢划算加上有API支援,這使得S3很適合用作自動化部署系統的一部份。
以美國東岸N. Virginia計算,少於1TB的情況下,每GB的儲存費用是USD $0.095,流量則是USD $0.12/GB,每1000個請求是USD $0.005,而且使用越多單價越平,加上Amazon經常派Coupon,基本上可以不太花錢就能擺放靜態網頁。
S3並不支援FTP上傳,必須配合專用的工具,這使得Gatekeepr必須懂得使用這些工具,也需共享[密碼],前者要求用戶學習,然後後者又要擔心不小心讓密碼外流,出了事也沒有方法追查成問題所在。
最理想是用戶本身有自己的帳戶,然後上傳又能留下記錄追查,在這些要求下,github是個不錯的選擇。
流程
基於這個特性,也可以用作正式版的發佈之用。首先在這個項目中有二個分歧,一個是master,平常工作的地方,任何修改都會自動上傳到預覽網站。
另一個分歧是release,平常不會修改,當需要發佈正式版時,就會向這個分歧提出一個Pull Request。
Gatekeeper只要查看這個Pull Request的細節便能得知有什麼地方被條改了,Github的介面甚至能顯示圖檔在修改前後的變化:
預覽流程
一般來說開發者/設計師都能在自己的電腦內查看及修改網頁內容,不過有時難免會大意弄錯,所以讓其他人檢查及回饋意見也很重要。那些Reviewer卻未必像開發者/設計師般精通技術,可以自已下載最新版的網頁,故此一般都會上傳一個預覽的版本供他們觀看。
把這個過程自動化可以節省不少力氣,不用重覆“修改->上傳”的步驟。
流程
把這個過程自動化可以節省不少力氣,不用重覆“修改->上傳”的步驟。
流程
- 開發者/設計師利用Git把最近的修訂推到Github
- Github會通知Travis-CI進行自動化的部署
- 及後Travis-CI再把內容上傳到Amazon S3檔案伺服器,該伺服器提供http://www2.tinyboy.net 預灠網站的內容
- Reviewer在不同設備、瀏灠器上查看 http://www2.tinyboy.net
- 然後回饋意見給開發者/設計師,讓他們再重新修改
Travis-CI
Travis-CI是一套為Github而設的Continuous Integration(CI)系統,每當收到新的commit就會自動執行測試程序,若成功則進行部署動作,過程中發生任何錯誤都會用電郵告知。Amazon S3
以美國東岸N. Virginia計算,少於1TB的情況下,每GB的儲存費用是USD $0.095,流量則是USD $0.12/GB,每1000個請求是USD $0.005,而且使用越多單價越平,加上Amazon經常派Coupon,基本上可以不太花錢就能擺放靜態網頁。
正式版本的發佈 - Pull Request
預灠版本是為了收集意見及測試之用,過程全自動,並不存在任何審批的流程。但正式版並不一樣,總不能把未檢查的內容向公眾發佈,故除了各位Reviewer外,通常也會有一個至數位Gatekeeper存在,由他們操刀釋放正式版本。S3並不支援FTP上傳,必須配合專用的工具,這使得Gatekeepr必須懂得使用這些工具,也需共享[密碼],前者要求用戶學習,然後後者又要擔心不小心讓密碼外流,出了事也沒有方法追查成問題所在。
最理想是用戶本身有自己的帳戶,然後上傳又能留下記錄追查,在這些要求下,github是個不錯的選擇。
流程
- 當Developer / Designer希望發佈正式版時,他們在Github上向Release分歧提交一個Pull request的伸請
- Gatekeeper在Github的介面上批準這個伸請
- Github從Master分歧中把修訂整合到Release的分歧
- Github通知Travis有新的修改
- Travis把內容上傳至www.tinyboy.net的S3 Bucket
基於這個特性,也可以用作正式版的發佈之用。首先在這個項目中有二個分歧,一個是master,平常工作的地方,任何修改都會自動上傳到預覽網站。
另一個分歧是release,平常不會修改,當需要發佈正式版時,就會向這個分歧提出一個Pull Request。
Gatekeeper只要查看這個Pull Request的細節便能得知有什麼地方被條改了,Github的介面甚至能顯示圖檔在修改前後的變化:
確認一切妥當,只需要按下這個按扭便能發佈:
參考文件
沒有留言:
發佈留言