因為工作關係,最近開始在接觸 GitLab,雖然過去對於 Azure DevOps, Team City, 與 GitHub 已經有比較深入的研究,雖然在 Git Repository/Continuous Integration/Continuous Delivery 觀念上應該部會相差太遠,但對於不同服務平台與操作介面要熟悉仍要花一點時間,因此開始此一系列文章,除了讓自己熟悉 GitLab 平台,也提供有興趣的朋友參考。本系列文章若有錯誤或建議,請各位先進不吝提出,謝謝。
GitLab 基礎教學系列 (暫列文章標題,會依據撰寫當時情況異動)
- GitLab 基礎介紹 - 註冊、價格與操作介面說明
- GitLab Project 介紹 - 建立、匯入與複製你的專案
- GitLab Group 介紹
- GitLab Issue 介紹
- GitLab 團隊協作
- GitLab Continuous Integration and Continuous Delivery
- GitLab Runner
- GitLab Wiki
價格
GitLab 在對於初次使用者來說並不算有優勢,在免費層部分有容量使用與傳輸限制,每個月只有提供 400 分鐘免費計算時間。對於過去 Azure DevOps 並沒有容量與傳輸限制、每個月有 1800 分鐘,且多數功能皆可以在不用付費情況下可以使用 (如 MR Approve,在 Azure DevOps 是不須付費使用)。最後 5 人部分則是與 Azure DevOps 相同的。
註冊與操作介面
GitLab 註冊畫面相當清爽,且提供 Gmail 與 GitHub 帳號直接註冊使用。另帶一題有提供30 天每費試用。
GitLab 與 GitHub 平台服務都是以 Git Repository (儲存庫為中心) 為主延伸服務:從專案列表上可以清楚看到有多少 Star, Merge, Brach;當你進入專案時,可以看到完整的儲存庫狀態;以專案管理層面,有簡單的 Issue Tracking 與 Kanban,雖然不如 Azure DevOps 專案管理來的精緻,但個人覺得目前在團隊使用上,比 GitHub 好一些。
比較有趣的是,Azure DevOps 與 GitHub 合併分支請求稱為 Pull Request,GitLab 稱為 Merge Request,
Issue 部分較為簡單,看起來比較不容易用於執行 Scrum 或 Agile 管理流程。與 issue 相關連結是採用 closing pattern:與 Git Commit 是採用 #xx 連結到 Issue、參考至 MR 則是 !xx、參考至 snippet 則是 $xx
雖然尚未深入研究 Pipeline,但與 GitHub Action 類似, CI/CD 會似乎在同一份 YAML 上進行維護。雖然也提供主流程式語言與編譯工具 Template,但並沒有像 GitHub 與 Azure DevOps 有大量 Task/Extension 可以使用。
Runner 部分 (Azure DevOps 與 GitLab 稱為 Agent) 也提供 MacOS, Linux, 與 Windows 三種類型,但多提供 Container 與 K8S Cluster 設定。Runner 分類方式則與 GitHub/ Team City 方式相同,以 Tag 做分類。比較特別在 GitLab 上會限制 Runner 版本。
總結
在第一篇文章,除了快速過一下 GitLab 平台功能,我們也以初學者角度將 GitLab 與其他服務平台進行簡單比較。雖然比較結果並不是如此公平 (可能有其他平台使用習慣),在後面的文章我們會比較詳細的說明每一項功能的操作步驟,並做更細部的比較。
0 留言