Buduję swoje projekty z Jenkinsem i analizuję je za pomocą SonarQube.
Problem, który próbuję naprawić bez pisania własnej wtyczki, jest następujący:
- 1.) Jenkins rozpoczyna budowę nowego projektu (nigdy wcześniej nie budował ani nie analizował sonaru SonarQube)
- 2.) Wywołana jest analiza SonarQube
- 3.) Powłoka SonarQube sprawdza, czy projekt z tym samym kluczem już istnieje
- 4a.) Jeśli już istnieje: Przerwij analizę i wyślij komunikat o błędzie
- 4b.) Jeśli nie istnieje: Kontynuuj analizę jako normalną analizę
Lub innymi słowy: Jeśli projekt jest analizowany po raz pierwszy, chcę, aby SonarQube upewniał się, że nie ma już żadnego innego projektu z tym samym kluczem, którego używa ten nowy projekt. Celem jest uniknięcie zastąpienia istniejących projektów innym kompletnym projektem Jeśli projekt został już poddany analizie, a nowa analiza byłaby podobna do "aktualizacji starych wyników", nie chciałbym, aby pojawiał się komunikat o błędzie.
Czy mogę po prostu zainstalować wtyczkę? Czy muszę zmieniać rzeczy w pliku pom.xml? Czy jest jakiś sposób? A jeśli tak: jak to działa?
(Wiem, że można uzyskać numer okładkiostatnia udana kompilacja w Jenkins. A jeśli byłaby większa lub równa 1, nie byłoby już żadnego powodu dla mojego czeku. Jeśli nie: potrzebuję mojego czeku)
Dzięki za pomoc :)
Odpowiedzi:
4 dla odpowiedzi № 1Możesz użyć /api/resources?resource=project-key
Usługa sieci Web ze skryptu, aby sprawdzić, czy dany klucz projektu już istnieje (jeśli nie, WS będzie odpowiadał 404).
Jednak, jak @ andre-stannek powiedział: Ostatecznie to twój obowiązek upewnić się, że 2 projekty nie używają tego samego klucza. SQ nie może wiedzieć, czy analizowany projekt jest aktualizacją istniejącego projektu, czy nie.