Ist es mit Travis-CI möglich, eine Neuerstellung auszulösen, ohne ein neues Commit für GitHub zu erstellen?
Anwendungsfall: Ein Build schlägt aufgrund einer Externalität fehl. Die Quelle ist tatsächlich korrekt. Es würde OK bauen und bestehen, wenn es einfach erneut ausgeführt würde.
Ein Fehler tritt beispielsweise auf, apt-get
weil ein Paketserver ausgefallen ist, der Server jedoch wieder gesichert ist. Der Build-Status bleibt jedoch bei "fehlgeschlagen" "hängen", bis ein neues Commit gepusht wird.
Gibt es eine Möglichkeit, Travis-CI zu einem anderen Build zu bewegen, als ein "Dummy" -Commit durchzuführen?
Wenn Sie die Registerkarte Einstellungen für das Repository auf GitHub öffnen , auf Integrationen und Dienste klicken , Travis CI suchen und auf Bearbeiten klicken , sollte die Schaltfläche Testdienst angezeigt werden. Dies löst einen Build aus.
quelle
Settings
im Repository auf Github , nicht auf Travis 'Repo-Seite! Ich kann nicht glauben, dass ich 20 Minuten damit verbracht habe,Service Hooks
auf Travis 'Seite zu finden . :(Ich weiß, dass Sie gesagt haben, ohne ein Commit zu drücken, aber etwas, das praktisch ist, wenn Sie an einem anderen Zweig als dem Master arbeiten, ist das Festschreiben eines leeren Commits.
git commit --allow-empty -m "Trigger"
Sie können am Ende neu gründen und Squash entfernen / die leeren Commits entfernen und funktioniert über alle Git-Hooks hinweg :)
quelle
Ich habe einen anderen Weg gefunden, um CI-Builds und andere Trigger erneut auszuführen:
git commit --amend --no-edit
ohne Änderungen. Dadurch wird das letzte Commit in der aktuellen Verzweigung neu erstellt.git push --force-with-lease origin pr-branch
.quelle
--amend
Flag kann dasHEAD
Commit in einigen Fällen auch nicht ändern .git push --force-with-lease origin pr-branch
damit Sie nicht versehentlich die Änderungen eines anderenMelden Sie sich bei Travis an und gehen Sie zur Build-Seite. In der oberen rechten Ecke neben dem Zahnradsymbol wird die Schaltfläche "Build neu starten" angezeigt:
Hinweis: Sie benötigen Schreibzugriff auf das verknüpfte GitHub-Repo, damit dies funktioniert.
quelle
Wenn Sie ein neues Projekt auf GitHub haben, das .travis.yml enthält, aber nie getestet wurde, können Sie Tests ohne Commit auf folgende Weise ausführen:
quelle
Sie können dies mit der Travis CLI tun . Installieren Sie wie in der Dokumentation beschrieben zuerst das CLI-Tool und dann:
Sie können dieses Token in einer Umgebungsvariablen aufbewahren
TRAVIS_TOKEN
, solange die Datei, in der Sie es aufbewahren, nicht an einem öffentlichen Ort versioniert ist.Ich benutze diese Funktion, um Trigger zu senden:
quelle
Travis bietet jetzt eine Möglichkeit, einen "benutzerdefinierten" Build über die Web-Benutzeroberfläche auszulösen. Suchen Sie rechts oben auf der Seite Ihres Projekts nach der Menüschaltfläche "Weitere Optionen".
Daraufhin wird ein Dialogfeld angezeigt, in dem Sie den Zweig auswählen und die Konfiguration anpassen können:
Zum Zeitpunkt, an dem ich dies schreibe, befindet es sich in der Beta-Phase und scheint etwas fehlerhaft zu sein (aber ich gehe davon aus, dass die Probleme bald behoben werden).
quelle
Wenn Sie den Travis CI-Client installieren , können Sie
travis restart <job#>
einen Build manuell über die Konsole erneut ausführen. Sie können die letzte Jobnummer für einen Zweig mit findentravis show <branch>
UPDATE: Leider sieht es so aus, als würde ein neuer Build nicht mit dem neuesten Commit gestartet, sondern nur ein vorheriger Build mit dem vorherigen Status des Repos neu gestartet.
quelle
Ich sollte hier erwähnen, dass wir jetzt die Möglichkeit haben, einen neuen Build im Web auszulösen. Weitere Informationen finden Sie unter https://blog.travis-ci.com/2017-08-24-trigger-custom-build .
TL; DR Klicken Sie auf "Weitere Optionen" und wählen Sie "Trigger Build".
quelle
build #xxxx has been restarted
aber wenn Sie auf die Webseite schauen, sehen Sie keinen BuildWenn der Build nie stattgefunden hat (möglicherweise wurde der Pull-Request-Build-Schalter nicht rechtzeitig aktiviert), können Sie den Pull-Request auf Github als geschlossen markieren und dann als geöffnet markieren. Ein neuer Build wird ausgelöst.
quelle
Ich habe gerade die Tests für eine Pull-Anforderung ausgelöst, die erneut ausgeführt werden soll, indem ich hier auf "Zweig aktualisieren" geklickt habe:
quelle
Folgendes hat für mich funktioniert, um eine Neuerstellung einer PR auszulösen, die Dependabot geöffnet hatte, aber aufgrund von Fehlern in fehlgeschlagen ist
.travis.yml
:dependabot/cargo/tempfile-3.0.4
).quelle
Bitte stellen Sie sicher, Anmelden zuerst Travis. Die Schaltfläche zum Wiederherstellen wird erst angezeigt, wenn Sie angemeldet sind. Ich weiß, dass dies offensichtlich ist, aber jemand hat auch nur darauf gestolpert ;-)
quelle
Manchmal kommt es vor, dass der Server einige Fehler gemacht hat. Versuchen Sie, sich abzumelden / anzumelden, und dann könnte alles in Ordnung sein. (Ja, es ist mir heute Nachmittag passiert.)
quelle
Schließen Sie einfach den PR und öffnen Sie ihn erneut, wenn Sie keinen Schreibzugriff haben.
quelle