← 返回上一頁
CI/CD

Gitness:一款輕量好上手的開源 DevOps 平台,Git 管理加 CI/CD 一次搞定

本頁目錄
Gitness 開源 DevOps 平台介面截圖

如果你正在尋找一款輕量、好上手的開源 DevOps 平台,那 Gitness 絕對值得你試試看。它是由 Harness 團隊推出的開源專案,整合了原始碼管理(SCM)、持續整合(CI)與持續交付(CD)等核心功能,一個平台就搞定日常開發流程中最重要的幾件事。目前在 GitHub 上已經累積超過 31k 星星,社群活躍度相當高。

專案 GitHub 頁面:https://github.com/harness/gitness

Gitness 開源 DevOps 平台介面截圖
Gitness 平台介面一覽

用 Docker 快速安裝 Gitness

Gitness 最讓我驚豔的地方就是安裝超級簡單,一行 Docker 指令就能跑起來,連低規格的主機都沒問題:

docker run -d \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp/gitness:/data \
  --name gitness \
  --restart always \
  harness/gitness

啟動後,直接在瀏覽器打開 http://your_server_ip:3000 就能看到操作介面了。

初次使用與註冊帳號

第一次使用時,需要先建立帳號。前往 http://your_server_ip:3000/register 進行註冊,填入帳號密碼等基本資訊(帳密請妥善保管,此處以 ******** 代替),完成後就會自動導向首頁。

步驟 操作說明
1 開啟瀏覽器,前往 /register 頁面
2 填入使用者名稱與密碼完成註冊
3 註冊成功後自動跳轉至首頁儀表板

建立你的第一個專案

進到首頁之後,建立專案非常直覺:

步驟 操作
1 點選右上角的 New Project
2 輸入專案名稱,視需要填寫描述
3 按下 Create Project 完成建立

整個過程大概十秒鐘內就能搞定,介面設計很清爽。

建立程式碼倉庫(Repository)

專案建好之後,下一步就是在裡面建立 Git 倉庫。點選 New Repository,會出現一個表單讓你設定倉庫的各種屬性:

欄位 說明
Name 倉庫名稱
Description 倉庫描述(選填)
Default Branch 預設分支名稱,通常為 main
Visibility Public(公開)或 Private(私有)
License 選擇開源授權協議
.gitignore 選擇需要忽略的檔案規則範本

填好後按下 Create Repository 就完成了。值得一提的是,Gitness 也支援從 GitHub、GitLab、Bitbucket 等第三方平台匯入既有的倉庫,在 New Repository 按鈕旁的下拉選單就能找到匯入功能,遷移過程相當順暢。

Gitness Pipeline CI/CD 功能截圖
Gitness 倉庫與 Pipeline 管理介面

建好倉庫後,左側導航欄會列出所有相關功能:提交紀錄、分支管理、Tags、Pull Request 等。另外也能直接看到 Pipelines 選項,這是 Gitness 內建的 CI/CD 功能。

Pipeline 範例:快速上手 CI

Gitness 讓你可以針對不同倉庫撰寫專屬的 Pipeline 設定檔,以下分享兩個我自己常用的範例供參考:

Java 專案的 Pipeline

kind: pipeline
spec:
  stages:
  - type: ci
    spec:
      steps:
      - name: test
        type: run
        spec:
          container: maven:3-jdk-10
          script: |-
            mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
            mvn test -B

Python 專案的 Pipeline

kind: pipeline
spec:
  stages:
  - type: ci
    spec:
      steps:
      - name: test
        type: run
        spec:
          container: python
          script: |-
            pip install -r requirements.txt
            pytest

Pipeline 的語法蠻直觀的,基本上就是定義 stage 和 step,指定要用的容器映像檔和執行腳本就行了。如果想深入了解更多進階用法,可以參考官方文件:Gitness Pipelines 官方文件

我的使用心得

整體來說,Gitness 給我的感覺是一個非常輕量但功能完整的開發平台。跟 GitLab 那種龐然大物相比,Gitness 的資源消耗少很多,部署門檻也低。如果你的團隊規模不大,或者只是想在自己的伺服器上搭一個私有的 Git 服務加 CI/CD,Gitness 會是個很棒的選擇。推薦給有興趣的朋友們玩看看!

分享這篇
X LinkedIn Facebook Hacker News Reddit

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料