Jenkins Scripted Pipeline - указание каталога рабочей области перед тем, как узел выделит рабочую область - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть многоотраслевой конвейер, определенный в скриптовом конвейере (из библиотеки), который координирует ~ 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()
        }
    }
}

Любые рекомендации?

1 Ответ

0 голосов
/ 29 сентября 2018

Попробуйте:

   stage ('Snapshot-WINDOWS') {
        agent {
            node {
                label 'win'
                    customWorkspace 'C:\\w\\$JOB_NAME'
            }
        }
        steps {
            withMaven(
                maven: 'Maven 3.5.3',
                mavenSettingsConfig: 'settings'
            ) {
                bat 'mvn clean install'
            }
        }
    }

Я копирую вопрос .

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