Jenkins переключает рабочие пространства при использовании разных агентов - PullRequest
0 голосов
/ 17 апреля 2020

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

agent { label 'foonode||barnode' }

Но когда я хочу, чтобы какой-то этап выполнялся только на одном агенте, а следующий - на другом, рабочие области переключаются. Он прикрепляет 2@ к рабочему пространству. Пробовал с customWorkspace опцией узла, но он изменил только имя рабочей области, и 2@ все еще обнаруживается с ошибками при вызове сценариев, которые отсутствуют в некоторых сценариях. Поэтому я применил громоздкий подход:

environment {
    AGENTS="${env.NODE_LABELS}".tokenize()
}

stages {
    stage('Foonode stage') {
    when {
        expression {
            "${env.AGENTS}".contains('foonode')
        }
    }
    steps {  
        //.....
    }
}

И он работает следующим образом. Является ли это единственной возможностью предотвратить переключение рабочего пространства Jenkins? Параметр nodeReuse действителен только для docker агента, а не для простого Linux работника. Заранее спасибо.

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