2013-02-15 26 views
5

Używam konfiguracji MIK-konfiguracji z sekwencyjnym wykonaniem. 2 osie: - niewolniki - zdefiniowane przez użytkownikaZamówienie dla wielu konfiguracji jenkins

Jenkins uruchamia moje prace w "losowej" kolejności.

Czy istnieje sposób na naprawienie tego zamówienia? Dlaczego Jenkins nie używa kolejności użytej zmiennej zdefiniowanej (pierwsza linia pierwsza)?

pozdrowienia

Odpowiedz

1

według str 267 Jenkins: The Definitive Guide Johna Smarta, Jenkins użyje wartości osi w taki sam sposób, jak wartości parametrów, ale kiedy wyzwalane zadanie będzie uruchamiane raz na wartości osi.

Kolejność dla tych wartości nie jest stała (i może być losowa, nie jestem pewien). Przypuszczalnie założeniem jest to, że istnieje wystarczająco dużo niewolników, aby każda permutacja była obsługiwana przez inny niewolnik, a kolejność permutacji nie ma znaczenia. Mówię permutacje, ponieważ jeśli istnieje więcej niż jedna oś, całkowita liczba buildów odpowiada iloczynowi kartezjańskiemu osi.

Scenariusz wieloosiowy prawdopodobnie zawiera odpowiedź na pytanie, dlaczego nie ma możliwości określenia kolejności w osi zdefiniowanej przez użytkownika: byłoby to skomplikowane i, w przypadku dystrybucji niewolników do budowy, niezbyt przydatne. Jenkins po prostu nie dba o porządek w osi, nie bez powodu. Prosty przypadek jednej osi i jednej wbudowanej maszyny podrzędnej, w przypadku której zamówienie może faktycznie mieć znaczenie, jest zasadniczo przypadkiem brzegowym.

2

Do tego celu można użyć Matrix configuration sorter plugin [1]. Po zainstalowaniu wtyczki, masz opcję Execution order of builds, z następującymi wartościami do wyboru:

  • nie obchodzi
  • szacowany czas trwania budowy (pierwszy najdłuższy)
  • Przewidywany czas trwania budowy (najkrótsza pierwszy)
  • Ostatnio oś zamówić

Wybór ostatnią opcję należy zamówić zadania sposób są one określone w osi, choć tylko dla ostatniego.

[1] https://wiki.jenkins-ci.org/display/JENKINS/Matrix+configuration+sorter+plugin

Powiązane problemy