自動倉庫測試
注意
自動構建需要 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 中定義的環境變數不可用。自動構建將照常工作。
選擇**儲存**以儲存設定,或選擇**儲存並構建**以儲存並執行初始測試。
檢查你的測試結果
從倉庫的詳細資訊頁面中,選擇**時間線**。
從此選項卡中,你可以看到倉庫的任何掛起、進行中、成功和失敗的構建和測試執行。
你可以選擇任何時間線條目以檢視每次測試執行的日誌。