如果你正在尋找一款輕量、好上手的開源 DevOps 平台,那 Gitness 絕對值得你試試看。它是由 Harness 團隊推出的開源專案,整合了原始碼管理(SCM)、持續整合(CI)與持續交付(CD)等核心功能,一個平台就搞定日常開發流程中最重要的幾件事。目前在 GitHub 上已經累積超過 31k 星星,社群活躍度相當高。
專案 GitHub 頁面:https://github.com/harness/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 按鈕旁的下拉選單就能找到匯入功能,遷移過程相當順暢。

建好倉庫後,左側導航欄會列出所有相關功能:提交紀錄、分支管理、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 會是個很棒的選擇。推薦給有興趣的朋友們玩看看!

發佈留言