434 Stimmen

Triggere einen Travis-CI-Neuaufbau, ohne einen Commit zu pushen?

Mit Travis-CI ist es möglich, einen erneuten Build auszulösen, ohne einen neuen Commit auf GitHub zu pushen?

Verwendungszweck: Ein Build schlägt aufgrund einer externen Ursache fehl. Die Quelle ist tatsächlich korrekt. Es würde funktionieren und bestehen, wenn es einfach erneut ausgeführt würde.

Zum Beispiel schlägt ein apt-get aufgrund eines Ausfalls des Paketservers fehl, aber der Server ist wieder online. Jedoch bleibt der Build-Status auf "fehlgeschlagen" stehen, bis ein neuer Commit gepusht wird.

Gibt es eine Möglichkeit, Travis-CI zu aktivieren, um einen weiteren Build durchzuführen, ohne einen "Dummy"-Commit zu pushen?

477voto

jbtule Punkte 30716
  • Wenn Sie Schreibzugriff auf das Repository haben: Auf dem Bildschirm mit den Build-Details gibt es einen Button Build neu starten. Auch unter "Weitere Optionen" gibt es einen Menüpunkt zum Auslösen des Builds.

    Hinweis: Browsererweiterungen wie Ghostery können verhindern, dass der Neustartbutton angezeigt wird. Versuchen Sie, die Erweiterung zu deaktivieren oder Travis CI auf die Whitelist zu setzen.

    Hinweis2: Wenn sich die Konfiguration von .travis.yml im Upstream geändert hat, wird durch Klicken auf die Schaltfläche "Neu erstellen" Travis mit alter Konfiguration ausgeführt. Um Upstream-Änderungen auf die Travis-Konfiguration anzuwenden, muss ein Commit zum PR hinzugefügt oder dieser geschlossen / erneut geöffnet werden.

  • Wenn Sie einen Pull-Request gesendet haben: Sie können den PR schließen und dann erneut öffnen. Dadurch wird ein neuer Build ausgelöst.

Build neu starten:

Screenshot des Neustartbildschirms

Build auslösen:

Screenshot des Build-Auslösers

209voto

Aaron Hill Punkte 3196

Wenn Sie das Einstellungen -Registerkarte für das Repository auf GitHub öffnen, klicken Sie auf Integrations & Services, suchen Sie Travis CI und klicken Sie auf Bearbeiten, sollten Sie eine Test Service Schaltfläche sehen. Dies löst einen Build aus.

90voto

jasonmit Punkte 1268

Ich weiß, du hast gesagt, ohne einen Commit zu drücken, aber etwas, das praktisch ist, wenn du an einem anderen Zweig als Master arbeitest, ist ein leerer Commit zu machen.

git commit --allow-empty -m "Auslöser"

Am Ende kannst du rebase durchführen und die leeren Commits squashen/entfernen und es funktioniert bei allen git-hooks :)

37voto

Vlad Frolov Punkte 6504

Ich habe einen anderen Weg gefunden, um das erneute Auslösen von CI-Builds und anderen Auslösern zu erzwingen:

  1. Führen Sie git commit --amend --no-edit ohne Änderungen aus. Dadurch wird der letzte Commit im aktuellen Branch neu erstellt.
  2. git push --force-with-lease origin pr-branch.

20voto

lampslave Punkte 1285

Wenn Sie ein neues Projekt auf GitHub haben, das eine .travis.yml-Datei enthält, aber noch nie getestet wurde, können Sie Tests durchführen, ohne auf diese Weise zu committen:

  1. Aktivieren Sie das Testen in den Travis CI-Einstellungen
  2. Öffnen Sie die Projektseite auf GitHub
  3. Öffnen Sie Einstellungen -> Webhooks und Dienste
  4. Suchen Sie Travis CI in den Diensten und klicken Sie auf die Schaltfläche „Bearbeiten“
  5. Klicken Sie auf "Dienst testen"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X