本頁使用了標題或全文手工轉換

GitLab

維基百科,自由的百科全書
(重新導向自Gitlab
跳至導覽 跳至搜尋
GitLab
Gitlab screenshot december 2015.png
網站類型
Git 倉庫代管服務
協同運作式版本控制
語言英語
業務範圍全球範圍
持有者GitLab Inc.
創立者
  • Sid Sijbrandij
  • Dmitriy Zaporozhets
  • Valery Sizov
代表人物
  • Sid Sijbrandij (CEO)
  • Dmitriy Zaporozhets (CTO)
產業軟體行業
員工412[1](截至2018年11月30日 (2018-11-30)
網址gitlab.com
Alexa排名 2,358 (2018年6月)[2]
商業性質
註冊可選
推出時間2011年,​10年前​(2011
現狀線上
內容許可
MIT授權條款 (Community Edition)[3]/商業授權 (Enterprise Edition)
程式語言RubyGo
GitLab (Community Edition)
穩定版本
13.12.4
(2021年6月14日,​3天前​(2021-06-14[4]
原始碼庫gitlab.com/gitlab-org/gitlab-foss
程式語言Ruby
作業系統跨平台
網站about.gitlab.com/ 編輯維基數據

GitLab 是由 GitLab Inc.開發,一款基於 Git 的完全整合的軟體開發平台(fully 整合軟體英語Integrated software development platform)。[5][6] 另外,GitLab 且具有wiki以及線上編輯、issue跟蹤功能、CI/CD 等功能。

CI/CD[編輯]

GitLab CI/CD 是 GitLab 內建的一款工具,用於 通過 持續方法論頁面存檔備份,存於網際網路檔案館)(continuous methodologies)的軟體開發。 該持續方法論包含三個部分:持續整合持續交付持續部署[7][8]

  • 持續整合(Continuous Integration,簡稱CI),每次在上傳代碼塊到基於Git倉庫時,持續整合 會執行指令碼去構建、測試、校驗代碼,這些操作是在合併到預設分支之前進行的。
  • 持續交付(Continuous Delivery,簡稱CD),在 持續整合 之後(即合併到預設分支之後),持續交付 將進行手動部署應用。
  • 持續部署(Continuous Deployment,簡稱CD),在 持續整合 之後(即合併到預設分支之後),持續部署 將進行自動部署應用。

原理[編輯]

當開發者組態了 GitLab CI/CD,那麼當開發者使用 git 提交(commit),那麼就會觸發 CI/CD 相關的一系列操作。 這一系列操作由 GitLab Runner 執行,相關組態記載於.gitlab-ci.yml檔案中,執行的結果將在Gitlab頁面中展示。[9] 每一次的提交(commit)將會出發一條管線(pipeline),管線是不同階段(Stage)任務(Job)的一個集合。[9] 階段(Stage)用於邏輯切割,同一階段的任務以並列方式執行,階段間是順序執行,上一個階段執行失敗,下一個階段將不會執行。[10] .pre 為第一階段(譯為:之前) 和 .post 最後階段(譯為:提交時),這兩個階段不需要被定義,也無法被修改。[11]

範例如下:

stages:
  - build
  - test
  - deploy

job 0:
  stage: .pre
  script: make something useful before build stage

job 1:
  stage: build
  script: make build dependencies

job 2:
  stage: build
  script: make build artifacts

job 3:
  stage: test
  script: make test

job 4:
  stage: deploy
  script: make deploy

job 5:
  stage: .post
  script: make something useful at the end of pipeline

任務(Job)可以構建Artifacts ,提供使用者下載。[9] 利用場景如下:在Android專案中,當組態了自動化構建Artifacts後,每次提交(push)代碼後,GitLab CI/CD 將自動構建 APK檔案,並在GitLab的頁面上提供下載按鈕。 任務(Job)可以自動部署檔案到外部伺服器,並通過 GitLab 頁面檢視該伺服器現今部署的狀態,以及進行重新部署(re-deploy)等操作。通過使用設定 environmentnameurl ,還可以在GitLab頁面直接上檢視網站。[12][13] 通過該操作可以達到 持續部署 的目的。[13]

deploy_staging:
  stage: deploy
  script:
    - echo "Deploy to staging server"
  environment:
    name: staging
    url: http://172.23.0.2:5000/
  only:
  - master
  tags:
    - Runner名称

GitLab Runner[編輯]

GitLab Runner 是一項開源專案,用於執行任務(Job),並將執行結果傳輸回Gitlab。[14]

Runner 可安裝在作業系統,也可以通過Docker的方式安裝。當 Runner 安裝後,需要將其註冊在 GitLab 中,方可使用。Runner 有若干種執executor可供使用,如:DockerShellSSH[14] Runner 預設使用Shell,Shell模式下,所有構建都會發生在Runner安裝的機器中,操作十分簡單,但是缺點很多。[15][16]

.gitlab-ci.ym 檔案中通過 tags 關鍵詞選擇Runner。[17]Runner 的相關組態在 config.toml 檔案中記載。[18]

與Docker結合 [編輯]

對 基於Docker的專案 進行構建和測試,有幾種方式。一種方式是,使用shell executor進行Docker CLI命令操作。 另一種方式就是使用Docker executor進行操作,它是官方推薦的操作,executor通過在Docker中使用 Docker-in-Docker頁面存檔備份,存於網際網路檔案館鏡像 進行Job相關操作。[19]

歷史[編輯]

GitLab 由烏克蘭程式設計師 Dmitriy Zaporozhets 和 Valery Sizov 開發,它由 Ruby 寫成。後來,一部分用 Go 語言重寫。截止 2018 年 5 月,該公司約有 290 名團隊成員[20],以及 2000 多名開源貢獻者。[21] GitLab 被 IBM,Sony,Jülich Research Center,NASA,Alibaba,Invincea,O’Reilly Media,Leibniz-Rechenzentrum (LRZ),CERN[22][23][24],SpaceX 等組織使用。[25]

最初,該產品命名為 GitLab,是完全免費的開源軟體,按照 MIT 授權條款分發。

2013 年 7 月,產品被拆分為:GitLab CE(社群版)和 GitLab EE(企業版),當時,GitLab CE 和 GitLab EE 的授權仍然是根據 MIT 授權分發的免費和開源軟體。

2014 年 2 月,GitLab公司宣布採用開放核心業務模式。GitLab EE 設定在專有授權條款下,並且包含 CE 版本中不存在的功能。

2015 年 7 月,GitLab公司又籌集了 150 萬美元的種子基金。截至 2015 年的客戶包括阿里巴巴集團,IBM 和 SpaceX。

2015 年 9 月,GitLab 從 Khosla Ventures 籌集了 400 萬美元的 A 系列資金。

2016 年 7 月,GitLab CEO 確認了公司的開放核心功能。

2016 年 9 月,GitLab 從 August Capital 和其他公司籌集了 2000 萬美元的 B 系列資金。

2017年10月9日,C輪融資,GitLab Inc.獲得 GV 領投,Telstra Ventures、Matt Mullenweg(個人)和INKEF Capital跟投的2000萬美元資金。

2018年9月19日,D輪融資,GitLab Inc.獲得 GS Growth 和 ICONIQ Capital 領投,Khosla Ventures、GV和INKEF Capital跟投的1億美元投資。

2019年9月12日,E輪融資,GitLab Inc.獲得 Goldman Sachs 和 ICONIQ Capital 領投,Y Combinator、Coatue、Adage Capital Management等跟投的2.68億美元投資[26]

事件[編輯]

Gitlab 於 2017 年 1 月 31 日發布一系列緊急通告稱,位於荷蘭的系統管理員因操作失誤而刪除了包含 310GB 產品資料的資料夾,在取消刪除操作後僅剩下 4.5GB。運維人員之後檢查發現,網站宣稱和配備的多項備份措施均未正常運作或難以利用。Gitlab 在 YouTube 直播了恢復資料的過程[27]。網站最終遺失了最後 6 小時的資料庫資料(包括問題、合併請求、評論、片段等,不含代碼庫)[28]

參考文獻[編輯]

  1. ^ GitLab Team. [2018-01-31]. (原始內容存檔於2018-11-25). 
  2. ^ GitLab.com Alexa Ranking. Alexa Internet. [2018-06-05]. (原始內容存檔於2021-02-02). 
  3. ^ GitLab Community Edition LICENSE file. [2018-01-31]. (原始內容存檔於2019-07-02). 
  4. ^ GitLab Patch Release: 13.12.4. [2021-06-14]. 
  5. ^ GitLab. docs.gitlab.com. [2020-03-27]. (原始內容存檔於2020-11-30). 
  6. ^ GitLab. docs.gitlab.com. [2020-03-27]. (原始內容存檔於2020-04-02). 
  7. ^ GitLab. docs.gitlab.com. [2020-03-25]. (原始內容存檔於2020-12-10). 
  8. ^ GitLab. docs.gitlab.com. [2020-03-27]. (原始內容存檔於2020-11-28). 
  9. ^ 9.0 9.1 9.2 A beginner's guide to continuous integration. GitLab. [2020-03-27]. (原始內容存檔於2021-01-10) (英語). 
  10. ^ stages. docs.gitlab.com. [2020-03-27]. (原始內容存檔於2021-01-29). 
  11. ^ pre-and-post. docs.gitlab.com. [2020-03-27]. (原始內容存檔於2021-01-29). 
  12. ^ A beginner's guide to continuous integration. GitLab. [2020-03-27]. (原始內容存檔於2021-01-10) (英語). 
  13. ^ 13.0 13.1 GitLab. docs.gitlab.com. [2020-03-27]. (原始內容存檔於2020-11-24). 
  14. ^ 14.0 14.1 GitLab. docs.gitlab.com. [2020-03-22]. (原始內容存檔於2021-02-02). 
  15. ^ GitLab. docs.gitlab.com. [2020-03-24]. (原始內容存檔於2021-01-10). 
  16. ^ GitLab. docs.gitlab.com. [2020-03-24]. (原始內容存檔於2021-01-10). 
  17. ^ GitLab. docs.gitlab.com. [2020-03-26]. (原始內容存檔於2021-01-31). 
  18. ^ GitLab. docs.gitlab.com. [2020-03-26]. (原始內容存檔於2021-02-02). 
  19. ^ GitLab. docs.gitlab.com. [2020-03-26]. (原始內容存檔於2021-02-02). 
  20. ^ GitLab Team Page. GitLab. [9 May 2018]. (原始內容存檔於2018-11-25). 
  21. ^ GitLab Contributors. GitLab.com. [9 May 2018]. (原始內容存檔於2017-08-19). 
  22. ^ Andrii Degeler. GitLab is building a business with 0.1% of paying customers. The Next Web. 4 June 2014 [2018-01-31]. (原始內容存檔於2019-07-02). 
  23. ^ CERN. Services - CERN or commercial provider?. cern.ch. [2018-01-31]. (原始內容存檔於2019-02-26). 
  24. ^ Services - GitLab. [2018-01-31]. (原始內容存檔於2019-04-20). 
  25. ^ 存档副本. [2018-01-31]. (原始內容存檔於2020-11-30). 
  26. ^ 基于Git的完全集成的软件开发平台:极狐公司GitLab Inc.. 美股之家. 2021-04-18. 
  27. ^ Working on restoring GitLab.com. FAQ below.. [2017-02-02]. (原始內容存檔於2020-10-31). 
  28. ^ GitLab.com Database Incident. GitLab. 2017-02-01 [2017-02-10]. (原始內容存檔於2019-09-09). 

外部連結[編輯]