2010-11-12 12 views
12

Próbowałem dowiedzieć się, kto uruchomił nieudaną konstrukcję Hudsona. Ale znalazłemzamiast Started by 'UserId'. Co to znaczy?Co to jest "Rozpoczęty przez zmianę SCM" w Hudson?

+0

Gramatyka denerwuje mnie ... to powinna być „rozpoczął się zmianą SCM” – pbx

+4

@pbx Właściwie " "jest właściwym słowem. Określenie skrótów zależy od wymowy pierwszej litery skróconego słowa ("Es"). Podobny do "godziny" (wymawiane awer/aar w zależności od twojego akcentu). – Sagar

Odpowiedz

14

Oznacza to, że ktoś sprawdził zmiany w kodzie do zarządzania konfiguracją wersji/konfiguracją oprogramowania (CVS, SVN, Git, itp.), A Hudson rozpoczął budowanie na podstawie tej zmiany.

Powinieneś być w stanie zobaczyć, kto to był, klikając link "Zmiany" w lewym menu.

+0

To, co widzę tutaj, to to, że normalnie, gdy ktoś się zobowiązuje, mówi "Rozpoczęty przez zmiany od ____". Kiedy mówi "Rozpoczęty przez zmianę SCM", zakładam, że oznacza to, że coś poszło nie tak w Jenkinsie, tak że nie udało się ustalić, kto dokonał zmiany. – Trejkaz

+1

To nie jest prawda. Jeśli twoje zadanie jest ustawione na odpytywanie twojego SCM i wykryje, że zmiany zostały zatwierdzone (repozytorium zmieniło się), to wiadomość będzie informować, że zadanie zostało wywołane przez zmianę SCM. Nie ma to nic wspólnego z użytkownikiem - stanie się tak, nawet jeśli nie masz skonfigurowanych użytkowników, ale zadanie skonfigurowane do odpytywania twojego SCM – Sagar

+0

Ah, może, jeśli nie masz również skonfigurowanych użytkowników. Ale jeśli masz skonfigurowanych użytkowników, przynajmniej w naszym przypadku, mówi, który użytkownik to zrobił. – Trejkaz

6

"SCM" to "zarządzanie konfiguracją oprogramowania", tj. System kontroli wersji. Hudson może być skonfigurowany do odpytywania CVS, SVN itp. Dla zmian w kodzie źródłowym i wyzwalania kompilacji w oparciu o tę zmianę.

2

Pracowałem nad skryptem, który uruchamia wiadomość e-mail z listą zestawów zmian dla programisty, który rozpoczął kompilację. Po spędzeniu kilku godzin w Internecie, szukając rozwiązania, znalazłem obejście przekopujące pliki dziennika Hudson. Prawdopodobnie nie jest to najczystszy sposób, ale działa. Za każdym razem, gdy hudson odpala kompilację, zapisuje status kompilacji do pliku dziennika. Dziennik wygląda mniej więcej tak:

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 
... 
... 

Plik dziennika znajduje się w ~workspace/jobs/${RELEASE}/builds/${BUILD_NUMBER}/log. Następnie można przeanalizować plik dziennika dla UserID. Coś takiego powinno zadziałać.

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

0

Gdyby gdy nazwa utworu oddział i określona nazwa oddziału, gdzie ten sam problem w Jenkins sam. Każda zmiana spowodowała, że ​​hudson automatycznie utworzył kompilację do nadrobienia zaległości.

rozwiązany poprzez: zmianę nazwy lokalnego oddziału do czegoś innego (lub nie używaj go, być może)