Mam pracę Jenkinsa z ponad 100 kompilacjami. Muszę przeszukać wszystkie kompilacje tego zadania, aby znaleźć kompilacje, które mają określony ciąg na wyjściu konsoli. Czy jest jakaś wtyczka do tego? Jak mogę to zrobić?Wyszukiwanie przez wyjście konsoli pracy Jenkinsa
Odpowiedz
Jeśli nie ma dodatkowych wymagań zrobiłbym to po prostu w skorupach, np:
find $JENKINS_HOME/jobs/haystack -name log -exec grep -l needle {} \; \
| sed 's|.*/\(.*\)/log|\1|'
Istnieje Log Parser Plugin
podkreślając linie interesów w dzienniku (błędy, ostrzeżenia, informacje)
dzielenie dziennika na sekcje wyświetlające podsumowanie liczby błędów, ostrzeżeń i linii informacyjnych w dzienniku i jego sekcji.
łącząc podsumowanie błędów i ostrzeżeń w kontekście pełnego dziennika, dzięki czemu można łatwo znaleźć linię zainteresowania w dzienniku
przedstawiający podsumowanie błędów i ostrzeżeń na stronie build
Jeśli to stare logi, to @jil ma odpowiedź, zakładając, że jesteś na Linuksie.
Nie trzeba zakładać Linuxa. Po prostu _bash_, _find_, _grep_ i _sed_. Można je łatwo zainstalować na Windowsie (np. Z cygwin lub mingw) i prawdopodobnie masz już je, np. Jeśli używasz Git. – jil
Często używam Jenkins Script Console do takich zadań. Groovy plugin udostępnia konsolę skryptów, ale jeśli zamierzasz używać konsoli skryptów do okresowej konserwacji, będziesz również potrzebował Scriptler plugin, która pozwala zarządzać uruchamianymi skryptami.
Od Manage Jenkins ->Script Console, można napisać groovy skrypt, który dokonuje iteracji praca na kompilacje szukasz napisu pasującego:
JOB_NAME = "My Job"
BUILD_STRING = "Hello, world"
def job = Jenkins.instance.items.find { it.name == JOB_NAME }
for (build in job.builds) {
def log = build.log
if (log.contains(BUILD_STRING)) {
println "${job.name}: ${build.id}"
}
}
FWIW, aby przeszukać wszystkie zadania, użyj 'def job = Jenkins.instance.items.find {true}' –
To nie działa w konfiguracji CI. Czy możesz potwierdzić, czy to wyszukiwanie dzienników konsoli bieżących zadań, czy nawet zakończonych zadań? Jak mogę wyszukać wszystkie zadania, które są uruchomione i zakończone (nieudane/niestabilne/zakończone sukcesem)? – askb
@dave bacher Dostaję: groovy.lang.MissingPropertyException: Brak takiej właściwości: kompilacje dla klasy: java.lang.Boolean Każdy pomysł? – DenCowboy
Dzięki wszystkim za cenne rozwiązania. Po kilku dodatkowych badaniach odkryłem, że istnieje wtyczka do Jenkinsa.
https://wiki.jenkins-ci.org/display/JENKINS/Lucene-Search
Spowoduje to zapisanie wyników wyjściowych konsoli, a użytkownicy mogą zrobić wyszukiwania w polu wyszukiwania.
Chociaż jest to dobra odpowiedź, byłbym bardzo przestraszony, gdyby jeden z moich programistów poprosił o dostęp do naszego serwera Jenkins, aby mogli uruchamiać polecenia powłoki w stosunku do katalogów zadań. :) –
Możesz stworzyć zadanie Jenkinsa, które uruchomi to w kroku powłoki, jeśli obawiasz się o to, @Dave. Odnosząc się do własnej odpowiedzi, nie sądzę, aby uruchamianie skryptów Groovy w konsoli było bezpieczniejsze niż udzielanie dostępu do powłoki :) – jil