Gitlab CI/CD設置


It is done... and I am done.

今次唔講Vue住,因為我呢兩日都喺度玩緊呢嚿嘢...

GitLab係一個以網頁作為基底嘅Git Repository Manager,唔識咩叫Git嘅請自行Google,真係懶嘅話...


而家成個網站我都係用自己整嘅GitLab Server黎維護,畢竟係private project而且大部份嘢自己控制到就當然最好啦。關於GitLab嘅教學可以自行上佢官方網站度參詳下。今日想講少少關於佢嘅CI/CD功能。

CI/CD嘅意思係持續整合(Continuous Integration)及持續交付(Continuous Delivery)。你寫咗一啲新嘅功能,可能喺local嘅環境下測試成功,但基於local同staging甚至production嘅環境唔同(OS、Apache/Nginx、MySQL/Oracle等)而導致有誤差,擺咗上去先發現有問題。目前我都會恃住自己網站流量低,而且無乜人睇我個網誌直接丟上production睇吓有無問題再進行修改,不過長遠黎講呢個唔係一個好嘅方法。於是我就嘗試吓用GitLab提供嘅CI/CD功能。

要做呢樣嘢首先你要有一個或以上可以行你啲代碼嘅runner。我最後選擇咗喺自己部電腦度裝VirtualBox再裝Ubuntu 16.04黎模擬返production environment,然後為咗方便起見我喺個VM度裝咗LAMP stack、Node.js同埋docker。請記住嘅係其實GitLab Runner係可以喺windows上運行,只係因為我需要docker但係Win 10 Home裝唔到所以先淪落到我而家呢個地步......

詳細嘅GitLab Runner設定教學可以去官網文件 https://docs.gitlab.com/runner/ 度睇返架。

然後就要幫project加一個叫做.gitlab-ci.yml嘅檔案。呢個檔案係用黎設定你成個CI/CD嘅流程。

.gitlab-ci.yml設定檔。

我喺個設定檔入面指定咗會加載edbizarro/gitlab-ci-pipeline-php嘅PHP 7.2 Docker image,因為佢已經包含晒所有Laravel需要用到嘅嘢,包括Composer、Node.js等。亦都係因為呢個原因我先需要整個VM出黎裝docker...

然後就大功告成啦。不過一開始整出黎嘅Jobs報告未必會出現到coverage rate,因為你仲要去GitLab嘅Project入面揀選Settings > CI / CD > General pipelines settings度將Test coverage parsing嘅regexp寫返入去。GitLab已經好貼心咁俾埋提示你架啦。

Test coverage parsing regexp.

跟住就應該會喺CI / CD > Jobs嗰度睇到你啲代碼嘅coverage rate架啦。

我知好低...得啦唔駛講。

一開始初哥設定乜都唔識就會好似我一開頭張圖咁架啦,所以唔駛驚,搞下搞下就會搞得掂架啦。 w

Powered by Half-moon Production.

Copyright © 2011-2020 by 泣雨家的雜物房. Version 1.5.2.

Gitlab CI/CD設置


It is done... and I am done.

今次唔講Vue住,因為我呢兩日都喺度玩緊呢嚿嘢...

GitLab係一個以網頁作為基底嘅Git Repository Manager,唔識咩叫Git嘅請自行Google,真係懶嘅話...


而家成個網站我都係用自己整嘅GitLab Server黎維護,畢竟係private project而且大部份嘢自己控制到就當然最好啦。關於GitLab嘅教學可以自行上佢官方網站度參詳下。今日想講少少關於佢嘅CI/CD功能。

CI/CD嘅意思係持續整合(Continuous Integration)及持續交付(Continuous Delivery)。你寫咗一啲新嘅功能,可能喺local嘅環境下測試成功,但基於local同staging甚至production嘅環境唔同(OS、Apache/Nginx、MySQL/Oracle等)而導致有誤差,擺咗上去先發現有問題。目前我都會恃住自己網站流量低,而且無乜人睇我個網誌直接丟上production睇吓有無問題再進行修改,不過長遠黎講呢個唔係一個好嘅方法。於是我就嘗試吓用GitLab提供嘅CI/CD功能。

要做呢樣嘢首先你要有一個或以上可以行你啲代碼嘅runner。我最後選擇咗喺自己部電腦度裝VirtualBox再裝Ubuntu 16.04黎模擬返production environment,然後為咗方便起見我喺個VM度裝咗LAMP stack、Node.js同埋docker。請記住嘅係其實GitLab Runner係可以喺windows上運行,只係因為我需要docker但係Win 10 Home裝唔到所以先淪落到我而家呢個地步......

詳細嘅GitLab Runner設定教學可以去官網文件 https://docs.gitlab.com/runner/ 度睇返架。

然後就要幫project加一個叫做.gitlab-ci.yml嘅檔案。呢個檔案係用黎設定你成個CI/CD嘅流程。

.gitlab-ci.yml設定檔。

我喺個設定檔入面指定咗會加載edbizarro/gitlab-ci-pipeline-php嘅PHP 7.2 Docker image,因為佢已經包含晒所有Laravel需要用到嘅嘢,包括Composer、Node.js等。亦都係因為呢個原因我先需要整個VM出黎裝docker...

然後就大功告成啦。不過一開始整出黎嘅Jobs報告未必會出現到coverage rate,因為你仲要去GitLab嘅Project入面揀選Settings > CI / CD > General pipelines settings度將Test coverage parsing嘅regexp寫返入去。GitLab已經好貼心咁俾埋提示你架啦。

Test coverage parsing regexp.

跟住就應該會喺CI / CD > Jobs嗰度睇到你啲代碼嘅coverage rate架啦。

我知好低...得啦唔駛講。

一開始初哥設定乜都唔識就會好似我一開頭張圖咁架啦,所以唔駛驚,搞下搞下就會搞得掂架啦。 w