Ich bin sehr neu in Git und ich plane, zu einem Open-Source-Projekt auf GitHub beizutragen, nachdem ich einen kleinen Fehler darin entdeckt habe. Nachdem ich es gegabelt und den Fehler behoben hatte, stellte ich eine Pull-Anfrage fest und bemerkte, dass dies auftauchte:
Fehlgeschlagen - Der Travis CI-Build ist fehlgeschlagen
Als ich mir die Details Could not find .travis.yml
ansah, stellte ich fest, dass dies durch verursacht wurde , was durchaus Sinn machte, da ich mich nicht bei Travis Cl angemeldet und .travis.yml zum Repository hinzugefügt hatte.
Ich höre zum ersten Mal von Travis und der so genannten kontinuierlichen Integration. Und es klingt ziemlich cool. Um mehr darüber zu erfahren, habe ich es auf Wikipedia nachgeschlagen.
Travis CI ist ein gehosteter, verteilter kontinuierlicher Integrationsdienst, mit dem auf GitHub gehostete Projekte erstellt und getestet werden. Travis CI erkennt automatisch, wenn ein Commit durchgeführt und an ein GitHub-Repository gesendet wurde, das Travis CI verwendet, und versucht jedes Mal , das Projekt zu erstellen und Tests auszuführen . Dies schließt Commits für alle Zweige ein, nicht nur für den Hauptzweig.
Mein derzeitiges Verständnis von Travis CI ist, dass das Projekt automatisch vorangetrieben wird git commit -am ".."
und ich einen Teil davon nicht ganz verstehe.
Durch den Bau des Projekts und führen Tests , welche Tests wird es laufen? Und wie wird es das Projekt "bauen"? (wie es in Binär zu kompilieren?)
Darin heißt es: "Dies schließt Commits für alle Zweige ein" - aber was ist, wenn ich nicht für alle Zweige festschreiben möchte?
Ist es in Ordnung, wenn ich Travis Cl überhaupt nicht benutze? Unter welchen Umständen ist es am besten, es zu verwenden (oder es muss verwendet werden)?
Da Sie bereits herausgefunden haben, was Travis-CI ist, möchte ich direkt auf Ihre Fragen verweisen.
In der
.travis.yml
a-Datei geben Sie Ihr Betriebssystem, die Programmiersprache, Ihren Repo-Zweig, den Namen der Projektdatei und andere Details an. Beim Lesen dieser Datei verwendet Travis-CI die spezifischen Compiler, die auf ihrem Server installiert sind, um unseren Code zu kompilieren. Wahrscheinlich werden sie den gleichen Mechanismus haben wie wir für Github. Zum ersten Mal ziehen sie möglicherweise den Code ab [wenn wir bestimmte Zweige angegeben haben, ziehen sie den Code möglicherweise nur aus diesen Zweigen]. Wir haben uns auch authentifiziert, um unser Konto bei Travis-CI zu verwenden. Wenn wir ein Commit durchführen, sollte eine Benachrichtigung an den Travis-CI-Server gesendet werden, damit es als Commit erkannt wird und mit dem Kompilieren beginnt.Sie können verschiedene Zweige oder den
master
Zweig angeben . Und es sollte nur die spezifischen Zweige kompilieren, die in der.travis.yml
Datei angegeben sind.Ja es ist in Ordnung. Keine große Sache. Aber welche Vorteile werden Sie vermissen, wenn Sie diese einfach zu integrierende Engine nicht in Ihr Repo verwenden. Jedes Mal, wenn Sie ein Commit ausführen, kann es sein, dass etwas fehlt und aufgrund eines Codes nicht kompiliert werden konnte. Woher willst du das wissen? Daher sollten Sie Travis-CI verwenden.
Ich habe einen Blog- Beitrag geschrieben, in dem Sie lesen können, was Travis-CI ist, Continuous Integrations und wie Sie Travis-CI mit Ihrem Github Repo verknüpfen. Ich habe es für ein Swift-Repository geschrieben.
quelle
Ich denke, ich bin in einer sehr guten Position, um Ihre Frage zu beantworten, da ich gerade Travis CI lerne. Das erste Problem, auf das Sie zuerst gestoßen sind, besteht darin, dass das Projekt, zu dem Sie beitragen, Travis CI zum Testen und Erstellen des Projekts verwendet. Wenn das Projekt Travis CI nicht verwendet, wäre ein solcher Fehler nicht aufgetreten.
Die Lösung besteht darin, die Travis CI-Website zu überprüfen und zu erfahren, wie sie funktioniert und wie sie sich auf das Projekt auswirkt, an dem Sie arbeiten. Dies versetzt Sie in eine sehr gute Position, um zu verstehen, was in Ihrem Code fehlschlägt und wie Sie ihn beheben können.
Beantwortung der ersten Frage zum Aufbau des Projekts.
Dies bedeutet, wie der Quellcode vor der Verwendung / dem Test verarbeitet wird. Es hängt von der Sprache ab, die Sie schreiben. Zum Beispiel, wenn das Projekt mit PHP schreibt. Es wird meinen Code nicht in eine ausführbare Datei wie C / C ++ - Quellcode einbauen. Es wird meinen PHP-Code auf einem PHP-Interpreter ausführen und ihn dabei testen. Es durchläuft immer noch den normalen Kompilierungsprozess, den Ihre bevorzugte Sprache durchläuft.
quelle