Go Module 導入到專案內且搭配 Travis CI 或 Drone 工具

相信各位 Go 語言開發者陸陸續續都將專案從各種 Vendor 工具轉換到 Go Module,本篇會帶大家一步一步從舊專案轉換到 Go Module,或是該如何導入新專案,最後會結合 CI/CD 著名的兩套工具 TravisDrone 搭配 Go Module 測試。

Continue reading “Go Module 導入到專案內且搭配 Travis CI 或 Drone 工具”

在 Travis 實現 Docker Cache

docker 前一篇寫了『用 Travis 自動上傳 Docker Image』,Travis 跑完測試成功後才自動編譯 Docker Image 並且上傳到 Docker Hub。在每次 commit 後,Travis 執行 docker build 時間總是非常長,當然原因很多。如果選用的 Docker base image 非常肥,指令非常多,每次編譯都要重新下載及執行指令,所以執行時間就是這麼長。本篇就是想辦法減少 Travis 編譯 Image 時間,就像把 node_modules 壓縮起來,下次執行測試前先解壓縮再安裝,可以大幅減少 npm install 時間(可以參考之前的『用一行指令加速 npm install』)。這邊我們就需要用到 Travis 的 Cache 功能Continue reading “在 Travis 實現 Docker Cache”

用 Travis 自動上傳 Docker Image 到 Docker Registry

docker 在今年七月寫了一篇『在 Travis 升級 Docker 和 docker-compose 版本』,就在上個月底 Travis 終於將 Docker 預設版本換成 1.12.x 版本,並且將 docker-compose 也一併升級到 1.8.0,這樣就可以不用手動升級了。那這篇會紀錄如何用 Travis 自動編譯 Docker Image 並且上傳到 Docker Hub。Docker Hub 提供兩種方式讓開發者上傳 Image,第一種是透過 Command line 下指令手動上傳,另外一種則是在 Docker Hub 後台指定 Dockerfile 路徑及需要執行編譯的分支,這樣只要 Push commit 到 Github,Docker Hub 就會根據 Dockerfile 來自動編譯 Docker Image。本篇會介紹如何透過 Travis 服務來自動上傳 Dokcer Image,像是 Golang 的部屬方式通常是編譯出 Binary 執行檔後,將此執行檔加入 Image 最後才上傳。 Continue reading “用 Travis 自動上傳 Docker Image 到 Docker Registry”

在 Travis 升級 Docker 和 docker-compose 版本

docker Travis 是在 Github 上常用的整合測試服務,支援了各種程式語言 Golang, PHP, Node.js ..等測試及部署,也同時支援了一些常用 Service,像是 Docker, Redis 或 Database。這次來聊聊在 Travis 如何使用 Docker,在 Travis 內建的 Docker 跟 docker-compose 版本都是非常舊,所以使用預設的 docker-compose 指令常常會出現 (詳細 build log 可以參考這裡) Continue reading “在 Travis 升級 Docker 和 docker-compose 版本”