Travis 持續集成 GoLang 工程, 配置 踩坑記錄
- 2019 年 12 月 30 日
- 筆記
最近看了一些GoLang方面的文章,平時用來寫一些腳本還是比較不錯的。尤其是其可編譯為二進位單一文件跨平台運行的特性,實在是讓人喜愛。就我個人來說,解決了給沒有電腦編程基礎的人的環境下跑腳本要安裝一堆環境/依賴的痛點。travis作為優秀的持續集成服務,其諸多的特性也值得嘗試一下,與GitHub進行完美的結合,支援打包部署到項目release,當然travis的特性並不只有這些。
Travis-ci
- 首先,需要註冊一下 Travis-ci ,直接使用GitHub授權登陸即可。
- 授權之後會要求進行同步GitHub項目,對需要使用Travis服務的勾選即可,Travis會自動給勾選的項目添加一個鉤子,每當push程式碼就會觸發Travis測試任務。當然,也可以手動到Travis進行手動觸發(Trigger build),且可直接指定某一個commit觸發。
⚠️踩坑記錄
Travis-ci.org
是只支援public repo的,如果有private的需求的,可以到Travis-ci.com
- 如果有repo沒有顯示出來,可以在Travis的profile頁面執行
Sync account
- 如果是所屬的組織沒有顯示出來,可以點擊Review and add 進行授權同步。
.travis.yml
.travis.yml
文件是Travis服務讀取項目配置的文件,支援多種語言,這裡是GoLang的參考配置,支援上面介紹的打包部署。配置項這裡不細講,網上有很多介紹的文章。- 可以在
Job log
控制台看到執行情況。
⚠️踩坑記錄
- Travis打包部署到GitHub需要授權,可以通過Token的形式進行授權,這需要在
.travis.yml
配置文件的deploy
塊的 api_key 進行說明,然後需要在 Github Token 頁生成一個包含repo
許可權的Token,然後在Travis項目的設置頁面Environment Variables
新增一條配置:Name
為你在api_key
處聲明的變數,Value
為生成的Token.
參考
- https://docs.travis-ci.com/user/deployment/releases/
- https://github.com/GameXG/TcpRoute2/blob/master/.travis.yml