Meson CI 設定

本文檔旨在為 Meson 貢獻者提供資訊,並記錄用於測試 Meson 本身的 CI 設定。Meson 專案使用多個 CI 平台來涵蓋廣泛的目標系統。

GitHub 動作

GitHub 動作的設定檔位於 .github/workflows 中。在這裡,所有的映像檔都會使用完整的 run_tests.py 執行來進行測試。此外,也會執行其他一些較小的測試。

Docker 映像檔

Linux Docker 映像檔由 GitHub 動作自動建置和上傳。當主分支中任何映像檔定義檔(位於 ci/ciimage 中)發生變更時,就會觸發映像檔重建。此外,這些映像檔也會每週更新一次。

每個 Docker 映像檔在 ci/ciimage 中都有一個對應的目錄,其中包含 image.jsoninstall.sh

映像檔產生

沒有手動的 Dockerfile。相反,Dockerfile 是由 build.py 腳本自動產生。這樣做的目的是確保所有映像檔都具有相同的佈局,並且都可以自動建置和測試。

Dockerfile 是從 image.json 檔案產生的,基本上只會新增一些通用檔案並執行 install.sh 腳本,該腳本應包含所有與發行版本相關的設定步驟。可以透過 source /ci/common.sh 取得 common.sh 來存取一些共用功能。

要產生映像檔,請執行 build.py -t build <image>。可以使用 build.py -t test <image> 測試產生的映像檔。

通用映像檔設定

每個 Docker 映像檔都有一個 /ci 目錄,其中包含 env_vars.sh 腳本。在執行 Meson 測試套件之前,必須先取得此腳本的來源。

搜尋結果如下