В среде главного и подчиненного конвейера Jenkins с несколькими типами подчиненных, как принудительно запустить задачу после сборки в том же ведомом и рабочем пространстве, где был выполнен предыдущий этап.
Например, в следующем фрагменте кода конвейера используются 3 различных ведомых устройства. Этап «Dynami c Создание сервера» выполняется на агенте типа «miscslave», где мы запускаем команду «vagrant up». Следующие 2 этапа выполняются в разных ведомых устройствах: «performance_slave» и «seleniumslave». Теперь, когда тесты выполняются на динамических c серверах, нам нужно уничтожить его, запустив «vagrant destroy» в качестве задачи после этапа. Однако его нужно запускать из того же ведомого рабочего пространства «miscslave», где выполнялось «vagrant up», так как он создал там каталог «.vagrant» с информацией о машине Dynami c server, которая необходима для запуска ». уничтожить».
Как мы можем заставить конвейер выполнить эту задачу после сборки в том же рабочем пространстве, где было выполнено «Dynami c Создание сервера»?
pipeline {
agent { label 'miscslave' }
stages {
stage('Stage 1') { }
stage("DynamicServer Creation") {
agent {
label 'miscslave'
}
stages {
stage('DynamicServer Creation') {
//Create Dynamic server using vagrant up, create a .vagrant dir to save the create machine info
}
stage('DynamicServer Test') {
parallel {
stage("Execute Performance Tests") {
agent { label 'performance_slave' }
}
stage("Execute UI Tests") {
agent { label 'seleniumslave' }
}
}
}
}
post {
always {
//Delete the dynamic server using vagrant destroy. It has to be run in the same workspace where "vagrant up" was executed in "Dynamic Server creation stage"
}
}
}
}
}```