2022.06.30 Update
於GitLab CI/CD 手冊上發現 artifacts:reports:cobertura
在 GitLab 15.0 中移除,替換為 artifacts:reports:coverage_report
,因此更新底下內容。
2021.06.14 Update
在上一篇 在 Pipeline 檢視 PHPUnit 單元測試報告,透過 artifacts:reports:junit
的機制,使每次 Pipeline 執行後,就能馬上看到單元測試報告,有了測試報告之後,可能就會開始思考,那 Code Coverage 測試代碼覆蓋的狀況,是不是也可以在 Merge Request 的過程中就看到呢?
答案是可以的,而且在 GitLab CI/CD 的免費版本中就有這個功能。在 GitLab 12.9 版後,只需要透過 artifacts:reports:coverage_report
並作相關設定,就可以搜集 Cobertura XML 格式的報表就可以完成。這部分與 artifacts:reports:junit
的原理是一樣的,只需要讓 Pipeline 的工作可以產出所需要的格式的檔案,透過 artifacts:reports:coverage_report
將檔案搜集起來,就可以在 Merge Request 的畫面中看到視覺化的測試代碼覆蓋情況。
那麼,在 PHP 該怎麼做出符合Cobertura XML格式的測試程式碼覆蓋狀況檔案呢?
許多使用 GitLab 作為版本控制工具的使用者,要開始搭配 GitLab CI/CD 建立專案的持續整合流程時,一開始通常是從專案既有的測試開始著手,讓「測試」在每次原始碼 commit 後就自動執行,進而增加原始碼的品質。
在 GitLab 版本 11.2 之後,GitLab CI 開始提供了讓使用者可以簡便的在 Pipeline 中就看到 Pipeline 過程中產出的報表功能。其主要是透過 artifacts
夾帶 Pipeline 工作中產出的報表。
在 GitLab CI 提供的眾多報表功能中,artifacts:reports:junit
主要是用來搜集並呈現「單元測試」執行結果的報表,使用JUnit report format XML files,看到 JUnit 熟悉的朋友可能知道,這是 Java 語言在撰寫單元測試常用的工具。那麼,在 PHP 語言中,如果也要產出同樣的報表,應該要怎麼產生呢?
GitLab 官方固定在每個月 22 日釋出新的版本,也會針對該次的釋出提供一則圖文並茂的說明;而由於墨嗓我個人對於 GitLab CI/CD 的部分相對有興趣,因此對於每次釋出的內容中,關於 GitLab CI/CD 的部分會看得特別仔細,甚至會做一些實驗。
既然做了,那就多做一點點,記錄下來,跟大家一起分享,希望對大家有些幫助。這是第一次的嘗試,沒意外的話會持續做下去。
這個月釋出的是 GitLab 13.12 版。
零、前言
這陣子在進行手邊 PHP 專案的版本升級,從 PHP 5.x 升級到 PHP 7.x ,由於專案裡大量的使用了 while(list($key, $value) = each($items)) {}
這樣的語法,而在 PHP 7.2 之後,官方直接標注不建議使用,因此升級的過程中,順帶轉換為 foreach
結構,在過程中踩到一些 PHP 5.x 升級到 PHP 7.x 之後的特性雷,因此寫下這篇作為紀錄。
PS. 現行 PHP 7.2 當未關閉警告的情況下,會提醒 PHP: each - Manual 不建議使用¶:
1 | Deprecated: The each() function is deprecated. |
01 - 活動紀錄
- 活動方:GitLab Taipei User Group
- 名稱:GitLab 從團隊導入到運用
- 基本介紹:
這份簡報分為兩個部分:
第一部分怎麼讓一個完全沒有原始碼版本控制的大型專案,逐步的轉變,陸續導入 GitLab 的各種功能,直到現在專案已經有了自己的 CI/CD 流程。這期間期間當然包含了一些政治面、商業面的因素,但整體經歷了哪些事情呢?在這部分會跟大家聊聊這段故事。
第二部分,在使用及導入 GitLab 的過程中,隨著專案演進 .gitlab.yml 定義的流水線 pipeline 上有越來越多工作,怎麼讓工作流程進行的更快一些呢?又,可以怎麼整理 .gitlab.yml 檔,讓他更簡潔一些?在這部分將跟大家分享一些小技巧。
当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器