GitLab使用筆記

MVC5→MVC6 不是昇版而是世代轉換。三大項應用功能與其他

軟體專案開發管理

  • 以Scrum方法論為中心,當然客製化的彈性很高。

  • 比較特別的,其 Group 在此是 Project 的分群,不是人的群組,這與一般的認知不同。

  • 然而視覺化報表在免費版都看不到不知是否有提供。

  • 燃盡圖(burndown chart)於 GitLab 收費版才支援。--- 可惜呀

原始碼版控

  • 使用Git做版控。

  • 使用上與GitHub幾乎相同。

軟體CI/CD

  • GitLab-CI, 提供一套CI/CD框架用以自動部署。

  • 依組態檔『.gitlab-ci.yml』編寫的 scripts 執行。

  • 各類型系統的 CI/CD scripts 可說全然不同,有非常複雜的排列組合,比如:程式語言 x 編譯器與資源 x 部署通道 x 執行平台等等。且要先確定GitLab已有相關支援才能實作。

  • 為避免出現系統開發好卻無法(或很難)部署的冏況,在實務上程序建議:

    • 必需先確認執行標的部署環境。

    • 並製作好上傳原始碼、組譯與部署的系統雛型後才能正式啟動開發工作。

其他功能

  • snippets

  • 專案的 wiki

沒圖沒真象

沒圖沒真象,還是把試用的 .gitlab-ci.yml 留一下吧。此例是 ReactApp 的 CI 沒有CD。語法閱讀上還是有一些參考性的。

image: node # 镜像选择 node,因为我们需要运行 npm 命令

before_script:
  - npm install # 在执行我们的构建任务前先安装依赖

cache:
  paths:
    - node_modules/ # 缓存 node_modules 目录,可有可无

pages: # 这里必须写 pages 是一个特殊的任务名称,只有用 pages 才能托管我们的静态站点
  stage: deploy # 这里可以写也可以不写,不写的话默认是 test 
  script:
    - npm run build # 运行构建命令
  artifacts:
    paths:
      - public # 设置站点根目录
  only:
    - master # 只有 master 分支被 push 的时候会触发

結論

GitLab 本身還不錯,然其免費版是不足以用到真正的專案上的。

另外,試用只做到CI沒做CD,故不在此紀錄了。估計實務不會採用,因政策方向尚不明確做了應該無法續用,且CI/CD scripts 也會依各自模組的版本昇級又調整,現在弄好大概只會過時而己。

Last updated