2010-11-12 5 views
12

Ich habe versucht herauszufinden, wer den fehlgeschlagenen Hudson Build ausgelöst hat. Aber ich fand Started by an SCM change statt Started by 'UserId'. Nun, was bedeutet das?Was ist "Gestartet von einem SCM-Wechsel" in Hudson?

+0

Die Grammatik stört mich ... es soll eigentlich – pbx

+4

@pbx „von einer SCM Änderung gestartet“ werden " ein "ist das richtige Wort hier. Das a/an für Abkürzungen hängt von der Aussprache des ersten Buchstabens des abgekürzten Wortes ab ("Es"). Ähnlich wie "eine Stunde" (ausgesprochen je nach Akzent). – Sagar

Antwort

14

Es bedeutet, dass jemand Code in Ihr Versionskontrollsystem/Softwarekonfigurationsverwaltung eingecheckt hat (CVS, SVN, Git, etc), und Hudson begann eine basierend auf dieser Änderung gebaut.

Sie sollten in der Lage sein zu sehen, wer es war, indem Sie auf den Link "Änderungen" im linken Menü klicken.

+0

Was ich hier sehe ist, dass normalerweise, wenn jemand commit, es sagt "Gestartet von Änderungen von ____". Wenn es heißt "Gestartet von einem SCM-Wechsel", nehme ich an, dass es bedeutet, dass bei Jenkins etwas schief gelaufen ist, so dass es nicht gelungen ist, herauszufinden, wer die Änderung vorgenommen hat. – Trejkaz

+1

Das stimmt nicht wirklich. Wenn Ihr Job so eingestellt ist, dass er Ihren SCM abfragt und feststellt, dass Änderungen festgeschrieben wurden (das Repository wurde geändert), wird in der Nachricht angegeben, dass der Job durch eine SCM-Änderung ausgelöst wurde. Nichts mit dem Benutzer zu tun - dies wird auch dann passieren, wenn Sie keine Benutzer konfiguriert haben, aber der Job für die Abfrage Ihres SCM konfiguriert ist – Sagar

+0

Ah, vielleicht, wenn Sie auch keine Benutzer konfiguriert haben. Wenn Sie jedoch zumindest in unserem Fall Benutzer konfiguriert haben, wird angegeben, welcher Benutzer das getan hat. – Trejkaz

6

"SCM" ist "Softwarekonfigurationsverwaltung", d. H. Ihr Versionskontrollsystem. Hudson kann so konfiguriert werden, dass CVS, SVN usw. auf Änderungen an Ihrem Quellcode abgefragt werden und ein Build ausgelöst wird, der auf dieser Änderung basiert.

2

Ich habe an einem Skript gearbeitet, um eine E-Mail mit einer Liste von Changeset an einen Entwickler zu senden, der den Build gestartet hat. Nachdem ich ein paar Stunden im Web verbracht habe, um nach einer Lösung zu suchen, habe ich eine Workaround gefunden, die durch Hudson-Log-Dateien gegraben wurde. Wahrscheinlich nicht die sauberste Art, es zu tun, aber es funktioniert. Jedes Mal, wenn Hudson einen Build abfeuert, zeichnet er den Build-Status in einer Protokolldatei auf. Das Protokoll sieht ungefähr so ​​aus ..

Started by user <****> 
Building remotely on Slave1 
$ hg clone -r test_clone https://mercuial.com/build /some/workspace/test_clone 
adding changesets 
adding manifests 
adding file changes 
added 355 changesets with 298 changes to 43 files 
updating to branch default 
41 files updated, 0 files merged, 0 files removed, 0 files unresolved 
... 
... 

Die Log-Datei in ~workspace/jobs/${RELEASE}/builds/${BUILD_NUMBER}/log ist. Sie können dann die Protokolldatei für die Benutzer-ID analysieren. So etwas sollte funktionieren.

UserID = head -1 ~workspace/jobs/${RELEASE}/builds/${BUILD_NUMBER}/log|cut -d" " -f4

0

Haben das gleiche Problem in jenkins, wenn Kasse Zweignamen und bestimmte Zweignamen, wo gleich. Jede Änderung hat Hudson dazu veranlasst, automatisch einen Build zu erstellen, der aufholt.

gelöst durch: örtliche Zweignamen auf etwas anderes ändern (oder es nicht verwenden, vielleicht)