Travis 持續集成 GoLang 工程, 配置 踩坑記錄

  • 2019 年 12 月 30 日
  • 筆記

最近看了一些GoLang方面的文章,平時用來寫一些腳本還是比較不錯的。尤其是其可編譯為二進位單一文件跨平台運行的特性,實在是讓人喜愛。就我個人來說,解決了給沒有電腦編程基礎的人的環境下跑腳本要安裝一堆環境/依賴的痛點。travis作為優秀的持續集成服務,其諸多的特性也值得嘗試一下,與GitHub進行完美的結合,支援打包部署到項目release,當然travis的特性並不只有這些。

Travis-ci

  1. 首先,需要註冊一下 Travis-ci ,直接使用GitHub授權登陸即可。
  2. 授權之後會要求進行同步GitHub項目,對需要使用Travis服務的勾選即可,Travis會自動給勾選的項目添加一個鉤子,每當push程式碼就會觸發Travis測試任務。當然,也可以手動到Travis進行手動觸發(Trigger build),且可直接指定某一個commit觸發。

⚠️踩坑記錄

  1. Travis-ci.org是只支援public repo的,如果有private的需求的,可以到Travis-ci.com
  2. 如果有repo沒有顯示出來,可以在Travis的profile頁面執行Sync account
  3. 如果是所屬的組織沒有顯示出來,可以點擊Review and add 進行授權同步。

.travis.yml

  1. .travis.yml文件是Travis服務讀取項目配置的文件,支援多種語言,這裡是GoLang的參考配置,支援上面介紹的打包部署。配置項這裡不細講,網上有很多介紹的文章。
  2. 可以在Job log控制台看到執行情況。

⚠️踩坑記錄

  1. Travis打包部署到GitHub需要授權,可以通過Token的形式進行授權,這需要在.travis.yml配置文件的deploy塊的 api_key 進行說明,然後需要在 Github Token 頁生成一個包含repo許可權的Token,然後在Travis項目的設置頁面Environment Variables新增一條配置: Name為你在api_key處聲明的變數,Value為生成的Token.

參考

  1. https://docs.travis-ci.com/user/deployment/releases/
  2. https://github.com/GameXG/TcpRoute2/blob/master/.travis.yml