У меня есть многоотраслевой конвейер, определенный в скриптовом конвейере (из библиотеки), который координирует ~ 100 сборок, каждая сборка на нескольких ведомых (разных операционных системах).Одной из операционных систем является Windows с ограничением пути в 255 символов.Поскольку некоторые из наших заданий содержат ~ 200 символьных путей (которые мы не можем контролировать, потому что это ад, предоставляемый поставщиком), мне нужно изменить рабочую область шага / узла на наших ведомых устройствах Windows, в идеале меняя ее с помощью узла ()шаг, чтобы git автоматически извлекался только один раз в пользовательское рабочее пространство.
Я пробовал все виды различных стилей:
Это работает в декларативном конвейере:
stage('blah') {
node {
label 'win'
customWorkspace "c:\\w\\${JOB_NAME"
}
steps {
...
}
}
Но я не могу найти эквивалент для скриптовых конвейеров:
pipeline {
stage('stage1') {
node('win-node') {
// the git repository is checked out to ${env.WORKSPACE}, but it's unusable due to the path length issue
ws("c:\\w\\${JOB_NAME}") {
// this switches the workspace, but doesn't clone the git repo again
body()
}
}
}
}
В идеале я хотел бы что-то вроде этого:
pipeline {
stage('stage1') {
node('win-node', ws="c:\\w\\${JOB_NAME}") {
body()
}
}
}
Любые рекомендации?