Matrix-Job: построение всей матрицы на одном узле - PullRequest
1 голос
/ 18 июля 2011

Я использую несколько матричных заданий, которые обычно содержат следующие шаги:

Build, Install, Test

Шаг Build устанавливается какШаг приземления.Другие шаги используют двоичные файлы, созданные Build.

Недавно я добавил еще один узел в мою систему, который также должен создавать эти матричные задания.Теперь моя проблема в том, что Дженкинс распределяет шаги моей работы по этим узлам.

Example:  
1. Slave A runs the `Build` step and succeeds  
2. Slave B runs the `Install` step and fails due to its dependency on the `Build`-results.  
3. Slave A runs the `Test` step and succeeds, cause the dependencies are existing.

Выполнение задания матрицы завершается неудачно, потому что его шаги распределены.

Мой вопросТеперь, если есть какой-либо способ привязать выполнение матричного задания только к одному узлу.Это не проблема, если разные выполнения выполняются на разных узлах, но шаги определенного выполнения должны выполняться на определенном узле.

Невозможно связать матричное задание только с одним узлом.Он все еще должен быть связан с группой узлов.

1 Ответ

1 голос
/ 18 июля 2011

Поскольку эти шаги выполняются как отдельные задания, на оси «метка»:

  • убедитесь, что вы выбрали отдельные узлы, а не метки, для каждого из ваших шагов.

Это обеспечит выполнение каждого из ваших шагов на каждом отдельном подчиненном устройстве, и, следовательно, каждый шаг будет иметь рабочее пространство своего предшественника.

См .: http://imagebin.org/163627

================================================================================

На основе комментариев:

На данный момент у вас есть две опции:

  • Вы можете использовать: https://wiki.jenkins -ci.org / display / JENKINS / Copy + Artifact+ Plugin .Вы можете добавить все необходимое в качестве артефакта вашего шага «сборки», а ваш шаг «установки» скопировать их с помощью плагина.Сделайте то же самое для "install" => "test".

  • Объедините ваши шаги в одно задание, поскольку нет гарантии, что один и тот же узел будет «наименее использован» для каждого шага, если они являются разными заданиями.Единственный способ заставить все задания использовать один и тот же узел - это выбрать отдельный узел, а не метку.

Надеюсь, это поможет ...

...