CI/CD/DevOps
使用 travis-ci 服務
2017/03/24 @ 線上讀書會3
Who Am I
邵玉龍
Allen Shao
網路常用暱稱 bestlong
目前任職於某製造業資訊人員
全包工程師
專有名詞
CI
Continuous Integration
持續整合
CD
Continous Delivery
持續部署
DevOps
Development 和 Operations 的組合詞
Travis-CI 的特色
用來建構及測試與部署在 Github 上託管的代碼
對開源專案完全免費
私有專案有收費 http://travis-ci.com/plans
支援非常多種程式語言、資料庫
https://docs.travis-ci.com/
https://docs.travis-ci.com/user/database-setup/
一個設定檔
.travis-ci.yml
進入 CI 階段
持續整合
完成設定後只要有 git push 成功就會觸發建構
逐步調整 .travis.yml
由簡入繁
通知機制
預設發生錯誤或錯誤修復就會發 Email 通知相關人士
https://docs.travis-ci.com/user/notifications/#Default-notification-settings
可依需求調整,例如:Slack
CI部分
Demo
部署階段
本程序請小心使用,可能導致服務故障
警告
部署階段
讓程式架構盡量符合公認通則
https://12factor.net/
一個網站只對應一個需要部署的 branch
套用有條件發佈設定
https://docs.travis-ci.com/user/deployment/#Conditional-Releases-with-on%3A
例如
staging 只用 develop branch 部署
production 只用 master branch 部署
CD部分
Demo
與 Travis-CI 雷同的工具
JenkinsCI (Hudson)
CircleCI
GitLabCI
Atlassian Bamboo
Jetbrains TeamCity
...
參考資料
官網
https://travis-ci.org/
https://travis-ci.com/
如何使用Travis CI自動測試? | 點燈坊