W jaki sposób radzisz sobie z odwzorowywaniem zadań Jenkinsa do procesu budowania i czy byłeś w stanie tworzyć kaskadowe konfiguracje dziedziczenia?Dziedziczenie zadań w pracy Jenkinsa
Dla każdej kompilacji będę mieć co najmniej trzy zadania (standardowa ciągła integracja/nocne, skanowanie bezpieczeństwa, zasięg), a następnie niektóre zadania testowania integracyjnego w dół. Wtyczka konfiguracji fragmentów obsługuje niektóre aspekty przekrojowe zadań, ale każde zadanie jest w dalszym ciągu bardzo indywidualną jednostką, bez żadnego związku z innymi zadaniami w swojej grupie.
Niedawno zobaczyłem QuickBuild i ma dziedziczenie zadań, w którym zadania nadrzędne mogą definiować standardową grupę kroków, a jej dzieci mogą przesłonić i wyspecjalizować. Z Jenkinsem mam kopie zleceń, co jest w porządku, dopóki nie będę musiał coś zmienić. Dzięki QuickBuild relacja między zadaniami pozwala mi bez trudu rozpowszechniać moje zmiany.
Próbowałem dowiedzieć się, jak sobie z tym poradzić w Jenkins. Mogłabym użyć sparametryzowanej wtyczki wyzwalacza budowania, aby umożliwić zadaniom wywoływanie innych i nadpisywanie aspektów. Następnie pobierałbym dane z wywoływanych zleceń do rozmówcy. Podejrzewam, że napotkam szereg problemów, w których istnieją aspekty, których nie mogę przesłonić, co zmusi mnie do wdrożenia funkcji Jenkinsa w moim własnym skrypcie, dzięki czemu Jenkins będzie mniej przydatny.
W jaki sposób radzisz sobie ze złożonością zadań budowania w Jenkins? Czy słyszałeś o poważnych problemach z QuickBuild?
Szukałem w tych kwestiach dzisiaj chociaż bez jakiekolwiek zainteresowanie QuickBuild. W szczególności chciałbym różne opcje konfiguracji dla CI i Nightly kompilacji, takich jak sprawdzanie na czystych przestrzeni roboczych vs wykonanie przywracania + aktualizacji, jak długo przechowywane są artefakty kompilacji i jak archiwizować lub wdrażać artefakty - przy zachowaniu tej samej listy instrukcje kompilacji dla każdego. Wtyczka Matrix/multiconfig nie zapewnia wystarczających opcji. Myślę, że możemy sobie z tym poradzić dzięki pod-zadaniu, które wykonuje samą kompilację, wywołaną sparametryzowanym obszarem roboczym - ale jest to dodatkowa złożoność. – CJBrew
Jeśli każde z twoich zadań wykonuje jeden aspekt twojego CI, nie powinno być potrzeby powielania zadań między zadaniami. Mamy pracę polegającą na budowaniu, która ma pracę na dalszych etapach, która następnie przeprowadza testy integracyjne. Jeśli istnieje chęć przeprowadzenia niektórych testów etapowych w regularnych odstępach czasu, można to ustawić w tych zadaniach jako wyzwalacze czasowe. W ten sposób budowana praca po prostu się buduje, testowanie polega na testowaniu i tak dalej. Jeśli użyjesz zadania "Archiwizuj klonowaną przestrzeń roboczą", to dalsze zadanie może uzyskać dostęp do artefaktów budowy. Czy możesz rozwinąć odpowiedź, jeśli wolisz? – jbjon
Zastanawiam się, czy rok później znalazłeś rozwiązanie tego problemu. – sorin