Der Unterschied liegt im Zustand des Jobs, wenn etwas schief geht.
Git 2.17 (Q2 2018) zeigt, dass in Commit 3c93b82 (08. Januar 2018) von SZEDER Gábor ( szeder
) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit c710d18 , 08. März 2018)
Das zeigt den praktischen Unterschied zwischen before_install
, install
, before_script
und script
Optionen
travis-ci
: Git während der ' script
' Phase erstellen
Seit wir Git auf Travis CI erstellen und testen ( 522354d : Travis CI-Unterstützung hinzufügen, 27.11.2015, Git v2.7.0-rc0), erstellen wir Git in der before_script
Phase ' ' und führen die Testsuite in der Phase ' script
' aus. Phase (außer in den später eingeführten 32-Bit-Linux- und Windows-Build-Jobs, in denen wir in der script
Phase bauen)).
Im Gegensatz dazu besteht die Travis CI-Praxis darin, in der script
Phase zu bauen und zu testen . In der Tat lautet der Standard-Build-Befehl von Travis CI für die script
Phase ' ' von C / C ++ - Projekten:
./configure && make && make test
Der Grund, warum Travis CI dies so macht und warum es ein besserer Ansatz als unser ist, liegt darin, wie erfolglose Build-Jobs kategorisiert werden. Nachdem bei einem Build-Job ein Fehler aufgetreten ist, kann der Status wie folgt lauten:
'fehlgeschlagen' , wenn ein Befehl in der script
Phase ' ' einen Fehler zurückgegeben hat.
Dies wird durch ein rotes "X" auf der Travis CI-Weboberfläche angezeigt.
'fehlerhaft' , wenn ein Befehl in der Phase ' before_install
', ' install
' oder ' before_script
' einen Fehler zurückgegeben hat oder der Build-Job das Zeitlimit überschritten hat.
Dies wird als rotes '!' auf der Weboberfläche.
Dies erleichtert es sowohl Menschen, die sich die Travis CI-Weboberfläche ansehen, als auch automatisierten Tools, die die Travis CI-API abfragen, zu entscheiden, wann ein nicht erfolgreicher Build in unserer Verantwortung liegt und menschliche Aufmerksamkeit erfordert, dh wenn ein Build-Job aufgrund eines Compilers "fehlgeschlagen" ist Fehler oder ein Testfehler, und wenn er durch etwas verursacht wird, das außerhalb unserer Kontrolle liegt und möglicherweise durch einen Neustart des Build-Jobs behoben wird, z. B. wenn ein Build-Job "fehlerhaft" ist, weil eine Abhängigkeit aufgrund eines vorübergehenden Netzwerkfehlers nicht installiert werden konnte oder weil der Der OSX-Build-Job hat sein Zeitlimit überschritten.
Der Nachteil beim Erstellen von Git in der ' before_script
' -Phase besteht darin, dass auch das Ablaufverfolgungsprotokoll aller 'fehlerhaften' Build-Jobs überprüft werden muss, um festzustellen, was den Fehler verursacht hat, da er möglicherweise durch einen Compilerfehler verursacht wurde.
Dies erfordert zusätzliche Klicks und Seitenladevorgänge auf der Weboberfläche sowie zusätzliche Komplexität und API-Anforderungen in automatisierten Tools.
Verschieben Sie daher das Erstellen von Git von der before_script
Phase ' ' in die Phase ' script
' und aktualisieren Sie auch den Namen des Skripts entsprechend.
' ci/run-builds.sh
' wird jetzt im Grunde leer, entfernen Sie es.
Einige unserer Build-Job-Konfigurationen überschreiben unsere Standardeinstellung, before_script
um nichts zu tun. Mit dieser Änderung wird auch unsere Standardeinstellung ' before_script
' nichts tun. Entfernen Sie daher auch diese überschreibenden Anweisungen.