Meson CI-Setup
Dieses Dokument richtet sich an Meson-Mitwirkende und beschreibt das CI-Setup, das zum Testen von Meson selbst verwendet wird. Das Meson-Projekt nutzt mehrere CI-Plattformen, um eine breite Palette von Zielsystemen abzudecken.
GitHub Actions
Die Konfigurationsdateien für GitHub Actions befinden sich in .github/workflows. Hier werden alle Images mit dem vollständigen run_tests.py-Lauf getestet. Zusätzlich werden einige andere, kleinere Tests durchgeführt.
Docker-Images
Die Linux-Docker-Images werden automatisch von GitHub Actions erstellt und hochgeladen. Ein erneutes Erstellen des Images wird ausgelöst, wenn eine der Image-Definitionsdateien (in ci/ciimage) im Master-Branch geändert wird. Zusätzlich werden die Images wöchentlich aktualisiert.
Jedes Docker-Image hat ein entsprechendes Verzeichnis in ci/ciimage mit einer image.json und einer install.sh.
Image-Generierung
Es gibt keine manuellen Dockerfiles. Stattdessen wird das Dockerfile automatisch vom Skript build.py generiert. Dies geschieht, um sicherzustellen, dass alle Images dasselbe Layout haben und automatisch erstellt und getestet werden können.
Das Dockerfile wird aus der image.json-Datei generiert und fügt im Grunde nur einige gemeinsame Dateien hinzu und führt das Skript install.sh aus, das alle distributionsspezifischen Einrichtungsschritte enthalten sollte. common.sh kann über source /ci/common.sh bezogen werden, um auf einige gemeinsame Funktionalitäten zuzugreifen.
Um das Image zu generieren, führen Sie build.py -t build <image> aus. Ein generiertes Image kann mit build.py -t test <image> getestet werden.
Gemeinsame Image-Einrichtung
Jedes Docker-Image hat ein Verzeichnis /ci mit einem Skript env_vars.sh. Dieses Skript muss bezogen werden, bevor die Meson-Testsuite ausgeführt wird.
Die Ergebnisse der Suche sind