2

Ich habe ein Skript geschrieben, das Versionsdateien für Bibliotheken, an denen wir gerade arbeiten, automatisch aktualisiert. Derzeit verwenden wir die P4 Plugin.Disklow Jenkins Build auf Submits von einem bestimmten Perforce-Benutzer

Wenn Jenkins eine Änderung des Verzeichnisses (Polling) annimmt, wird ein Build ausgelöst. Als Teil dieses Builds verwendet Jenkins den Perforce-Befehlszeilenclient zum Auschecken und Aktualisieren der Versionsdatei mithilfe des Skripts, damit sie mit der Perforce-Übergabenummer übereinstimmt.

Das alles funktioniert gut, das Problem ist, wenn die Versionsdatei aktualisiert wird, das nächste Mal, wenn eine Abstimmung passiert, löst es einen Build seit der Versionsdatei geändert. Dies führt zu einer Endlosschleife des Auslösens, um die Versionsdatei zu aktualisieren.

Meine Frage ist, gibt es eine Möglichkeit, Jenkins zu sagen, nicht zu bauen, wenn die Änderung von einem bestimmten Perforce-Benutzer kam? Ich habe gefunden Git plugin scheint ziemlich flexible Regeln über wer/was kann Builds auslösen, und ich frage mich, ob es eine Möglichkeit, dies in Jenkins zu tun, ohne sich auf ein externes Plugin oder ein Nicht-Git-Plugin, seit meinem Ich arbeite mit Perforce.

Oder vielleicht sogar in der Lage, Jenkins zu sagen, keinen Build auszulösen, wenn nur bestimmte Dateien geändert haben, könnte auch funktionieren.

Hat jemand irgendwelche Ideen, wie ich das angehen kann?

Edit: Die Version wird jedes Mal geändert, wenn jemand eine Submit der Haupt-Codezeile eines Projekts einreicht. Dies geschieht, damit wir eine interne Bibliotheksversion verfolgen und sie mit der Perforce-Übermittlung, die sie gemacht hat, synchronisieren können. Auf diese Weise können wir nachvollziehen, welche Perforce-Commits das Update durchgeführt haben, und es kann auch in Jira nachverfolgt werden.

Derzeit ist das Skript nur eine dumme C# Befehlszeile exe. Ich hatte gehofft zu vermeiden, es an die P4API.NET anschließen zu müssen und all diese Logik selbst zu schreiben.

+0

Das Skript der Versionen von Dateien zu aktualisieren, sind Teil des Build? Warum? Wie oft ändern sich Versionen? Können Sie das Skript ändern, um die Versionsdateien NICHT zu berühren, wenn sich nichts ändert? –

+0

Aktualisiert meine Frage – KSF

+0

Haben Sie den Abruf-Build-Filter von "Änderungen vom Benutzer ausschließen" versucht? – tkosinski

Antwort

2

Verwenden Sie die Polling Build-Filter von „Ausschließen Änderungen von Benutzern“

enter image description here

Verwandte Themen