儲存庫自動化測試
**注意**
自動化建置需要 Docker Pro、Team 或 Business 訂閱。
Docker Hub 可以使用容器自動測試您原始碼存放庫的變更。您可以在任何 Docker Hub 存放庫上啟用 `Autotest` 功能,以便在每次對原始碼存放庫發出拉取請求時執行測試,以建立持續整合測試服務。
啟用 `Autotest` 會建置一個用於測試目的的映像檔,但不會自動將建置的映像檔推送至 Docker 存放庫。如果您想要將建置的映像檔推送至 Docker Hub 存放庫,請啟用自動化建置。
設定自動化測試檔案
要設定您的自動化測試,請建立一個 `docker-compose.test.yml` 檔案,其中定義一個 `sut` 服務,列出要執行的測試。`docker-compose.test.yml` 檔案應與用於建置映像檔的 Dockerfile 位於同一個目錄中。
例如
services:
sut:
build: .
command: run_tests.sh
上面的範例會建置存放庫,並使用建置的映像檔在容器內執行 `run_tests.sh` 檔案。
您可以在此檔案中定義任何數量的連結服務。唯一的要求是必須定義 `sut`。它的傳回碼決定測試是否通過。如果 `sut` 服務傳回 `0`,則測試通過,否則測試失敗。
**注意**
只會啟動 `sut` 服務和`depends_on` 中列出的所有其他服務。如果您有服務輪詢其他服務的變更,請務必將輪詢服務包含在`depends_on` 列表中,以確保所有服務都已啟動。
如果需要,您可以定義多個 `docker-compose.test.yml` 檔案。任何以 `.test.yml` 結尾的檔案都會用於測試,並且測試會依序執行。您也可以使用自訂建置掛鉤 來進一步自訂您的測試行為。
**注意**
如果您啟用自動化建置,它們也會執行 `test.yml` 檔案中定義的任何測試。
在存放庫上啟用自動化測試
要在原始碼存放庫上啟用測試,您必須先在 Docker Hub 中建立關聯的建置存放庫。您的 `Autotest` 設定與自動化建置位於同一頁面上設定,但是您不需要啟用自動建置即可使用 `Autotest`。自動建置是針對每個分支或標籤啟用的,您根本不需要啟用它。
只有設定為使用自動建置的分支才會將映像檔推送至 Docker 存放庫,無論 `Autotest` 設定為何。
登入 Docker Hub 並選擇 **存放庫**。
選擇您要啟用 `Autotest` 的存放庫。
在存放庫檢視中,選擇 **建置** 標籤。
選擇 **設定自動化建置**。
按照自動化建置中的說明設定自動化建置設定。
您至少必須設定
- 原始碼存放庫
- 建置位置
- 至少一個建置規則
選擇您的 **Autotest** 選項。
可以使用以下選項
`關閉`:沒有額外的測試建置。只有在將測試設定為自動化建置的一部分時,才會執行測試。
內部拉取請求
:針對符合建置規則的分支的任何拉取請求執行測試建置,但僅限於拉取請求來自相同的來源儲存庫時。內部和外部拉取請求
:針對符合建置規則的分支的任何拉取請求執行測試建置,包括拉取請求源自外部來源儲存庫時。
重要
基於安全性考量,公開儲存庫的外部拉取請求自動測試會受到限制。不會提取私有映像,且 Docker Hub 中定義的環境變數將無法使用。自動建置將繼續照常運作。
選擇儲存以儲存設定,或選擇儲存並建置以儲存並執行初始測試。
檢查您的測試結果
從儲存庫的詳細資訊頁面中,選擇時間軸。
在此索引標籤中,您可以看到儲存庫中任何待處理、進行中、成功和失敗的建置和測試執行。
您可以選擇任何時間軸項目來檢視每次測試執行的記錄。