由於 github 遲遲不推出支援 IPv6 網站的連線功能, 目前若要在電腦輔助設計室直接透過純 IPv6 網路連線使用 git 分散式版次管理系統, 可以將 Github Pages 上的 CMSiMDE 網站, 同步一份倉儲資料到 Gitlab Pages.
機械設計工程師的網站
身為使用分散式版次管理系統的機械設計工程師團隊, 除了自行建立的 Linux 伺服器主機之外, Github Pages 是目前用來建立靜態網頁的最佳平台. 但是截至目前只支援 IPv4 網路協定連線的 github, 在上課時僅支援 IPv6 上線的情況下, 造成了許多不便. 因為所有的資料封包都必須透過雙支援的代理主機傳訊.
為了讓使用者可以在純 IPv6 環境下, 將 CMSiMDE 的靜態網頁部署在廣域雲端平台上, 準備將倉儲資料同步一份到 Gitlab Pages.
開放作風的 gitlab
github 雖然比 gitlab 早創立幾年, 但是 gitlab 的開源與大器作風, 讓帳面價值達到 76 億美元的 github 失色許多.
Github Pages 將用戶設定的靜態網頁資料分支, 以直覺但隱藏流程的方式進行, 導致許多情況下, 用戶無法就網頁資料轉檔流程進行除錯.
gitlab-ci.yml
而 Gitlab Pages 則選擇讓使用自行透過 gitlab-ci.yml 的 YAML 檔案, 自行控制網頁的轉檔流程.
以 CMSiMDE 網際內容管理中的靜態網頁而言, 只要在倉儲資料根目錄中, 加入一個 gitlab-ci.yml 檔案, 內容如下:
pages: stage: deploy script: - mkdir .public - cp -r * .public - mv .public public artifacts: paths: - public only: - master variables: GIT_SUBMODULE_STRATEGY: recursive
就可以順利將倉儲資料中的主分支靜態網頁, 部署在 https://帳號.gitlab.io/倉儲名稱 網址中. 其中最重要的設定參數:
GIT_SUBMODULE_STRATEGY: recursive
就是表明要求 gitlab 在將倉儲轉為網頁的過程, 同時以 recursive 的方式將其中的 submodule 目錄, 也納入網頁的內容.
git remote add
針對目前已經部署在 github 的靜態網頁倉儲, 使用者先在主分支的根目錄中, 新增提交推送一個上述的 gitlab-ci.yml 設定檔案, 然後建立與 github 帳號對應的 gitlab 帳號之後, 新增一個與 github 倉儲的同名空專案, 也就是連 README.md 都不建立的 public 空倉儲, 然後在近端倉儲主分支工作目錄中, 以:
git remote add gitlab https://gitlab.com/帳號/同名倉儲.git
新增一個網址代號 gitlab, 指到上述 gitlab 系統中的空同名倉儲網址.
接下來就可以透過:
git push gitlab
將 github 倉儲中的主分支資料, 同步一份到 gitlab, 並且在 gitlab-ci.yml 的設定導引下, 自動產生相應的 Gitlab Pages 靜態網頁. 而其網址就是: https://帳號.gitlab.io/倉儲名稱
最後, 假如之後的倉儲改版以 gitlab 為主, 只要在近端主分支的工作目錄中, 以:
git remote add github https://github.com/帳號/同名倉儲.git
建立一個 github 代號倉儲連結, 就可以透過:
git push github
No comments:
Post a Comment