Продолжать использовать узел после параллельных запусков - PullRequest
0 голосов
/ 12 июня 2019

После параллельного запуска тестов мне нужно немедленно отправить уведомления. В настоящее время параллельные узлы запускаются, затем узел отказывается, и уведомления об отправке иногда ожидают следующего доступного узла.

// List of tasks, one for each marker/label type.
def farmTasks = ['ac', 'dc']

// Create a number of agent tasks that matches the marker/label type.
// Deploys the image to the board, then checks out the code on the agent and
// runs the tests against the board.
timestamps {
    stage('Test') {
        def test_tasks = [:]
        for (int i = 0; i < farmTasks.size(); i++) {
            String farmTask = farmTasks[i]
            test_tasks["${farmTask}"] = {
                node("linux && ${farmTask}") {
                    stage("${farmTask}: checkout on ${NODE_NAME}") {
                        // Checkout without clean
                        doCheckout(false)

                    }
                    stage("${farmTask} tests") {
                        <code>
                    }
                 } // end of node
             } // end of test_tasks
         } // end of for
         parallel test_tasks
         node('linux') {
             sendMyNotifications();
         }
    } // end of Test stage
} // end of timestamps

1 Ответ

0 голосов
/ 13 июня 2019

Честно говоря, этот код выглядит вполне нормально.Я еще не понял, как уведомление должно ждать узла (есть ли у вас больше конвейеров, которые используют эти агенты? Есть ли несколько экземпляров этого конвейера, работающего одновременно?), Однако решение этой проблемы простое:

Настройте другого агента (он может находиться на компьютерах, на которых уже размещены существующие агенты) и присвойте ему уникальную метку (например, notifications), поэтому его единственным использованием будет отправка уведомлений.

Это не идеальнопотому что вы получаете единственную точку отказа, но это помогает исправить ситуацию, пока вы выясняете, что делает «настоящие» агенты недоступными после параллельных шагов.

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