新課程上架:『Docker 容器實用實戰』目前特價 $800 TWD,優惠代碼『20200222』,也可以直接匯款(價格再減 100),如果想搭配另外兩門課程合購可以透過 FB 聯絡我
GitHub 提供一個非常方便的功能,就是可以將靜態檔案部署在 GitHub 上,基本上開發者不用負擔任何 Host 費用,就可以使用靜態檔案來做 Demo 介紹,或者是文件系統。而本篇將教您如何用 Drone 來自動化部署靜態檔案到 GitHub 上。作者直接用 Vue.js 來介紹整個流程。
教學影片
如果對於課程內容有興趣,可以參考底下課程。
- Go 語言基礎實戰 (開發, 測試及部署)
- 一天學會 DevOps 自動化測試及部署
- DOCKER 容器開發部署實戰 (課程剛啟動,限時特價 $800 TWD)
準備 Vue.js 環境
這邊就不多著墨了,透過 npm build
可以在本機端將靜態檔案編譯到 dist
目錄內。而 GitHub Pages 預設的 domain 會是
user_id.github.io/project_name
假設專案的 GitHub URL 為
github.com/go-training/vue-gh-pages-demo
就可以知道 user id 是 go-training
那 repo 名稱為 vue-gh-pages-demo
,那 GitHub 提供的 URL 就會是
可以看出來會有一個 sub folder 跑出來,因為在同一個 Org 或 User 底下會有很多 repo,故一定要這樣區分。這時候在編譯 Vue.js 專案時就需要使用不同的設定,請打開 vue.config.js
從上面可以看到當開發者需要部署到 GitHub 時,就可以動態將 index.html 內的靜態檔案路徑換成 sub folder 方式,而不影響本機端開發。完整程式範例可以參考這邊。
搭配 Drone 自動化部署
由於 GitHub Page 預設是讀 gh-pages
分支,故需要先將此分支建立起來,後續才可以正常部署,請參照底下 .drone.yml
內容
|
|
其中 username 跟 password 會是 GitHub 的帳號密碼,但是密碼部分可以透過 GitHub 的 Personal Access token 來產生,這樣就不用給真的密碼了。
設定 custom domain
其實會發現使用 sub folder 其實很不方便,所以我個人都習慣使用 custome domain 方式來配置
GitHub 也提供個人網域的 https 憑證,所以像是各大 Conference 如果沒有什麼後端需求,其實都可以直接放到這上面,這樣還可以省下不少人力,及維護主機的成本。
完整程式範例可以參考這邊
See also
- 開源專案 Drone CI/CD 平台真的免費嗎?
- Go 1.15 新增 Module cache 環境變數
- Docker 推出官方 GitHub Actions 套件
- 用五分鐘安裝好 Drone 搭配 GitHub 自動化環境
- 用 GitHub Actions 部署 Go 語言服務
- Drone CI/CD 支援 Auto cancellation 機制
- Ansible 設定 Google Container Registry 搭配 Drone 自動上傳
- 用 Drone 自動化上傳 Docker Image 到 GitHub Docker Registry
- 用 10 分鐘安裝好 Drone 搭配 GitLab
- [Drone] 將單一 Job 分配到多台機器,降低部署執行時間