sta sh jenkins @script каталог - PullRequest
1 голос
/ 12 июля 2020

Я использую очень удобный Remote Jenkins Provider плагин для получения Jenkinsfile из репозитория, отличного от исходного кода. Сценарий Jenkinsfile и некоторые вспомогательные файлы загружаются в каталог @scripts в рабочей области задания. Это работает, как ожидалось.

Проблема, с которой я столкнулся, заключается в том, что конвейер работает на нескольких узлах, а каталог @script доступен только в главном узле (тот, который получил его из репозитория). Я пытаюсь использовать stash/unstash для совместного использования этого каталога между узлами:

node('master'){
    stage('save script'){
        sh "ls -l ${env.WORKSPACE}@script/"
        stash name: 'scripts', includes: "${env.WORKSPACE}@script/**"
    }
}

pipeline {
    agent { label 'worker' }
    stages {
        stage('build') {
            steps {
                unstash name: 'scripts'
                sh "${env.WORKSPACE}@script/helper.sh"
            }
        }
    }
}

Результат шага ls показывает, что есть как Jenkinsfile, так и вспомогательный скрипт:

-rw-r--r-- 1 jenkins jenkins 166 Jul 10 16:53 Jenkinsfile
-rwxr-xr-x 1 jenkins jenkins  29 Jul 10 15:18 helper.sh

Однако сборка завершается ошибкой на шаге stash с этим сообщением: ERROR: No files included in stash ‘scripts’

Обратите внимание, что если я запустил весь конвейер на одном и том же узле master без stash/unstash, он работает.

Как я могу совместно использовать каталог @script между узлами?

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