Почему копирование файла оболочки Jenkins не работает должным образом (не перезаписывает существующие файлы) - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть шаг в конвейере Jenkins для копирования некоторых исходных файлов в рабочую область.

stage('Copy Files') {
  script {
    echo 'Staging files'
    sh "cp -ar /home/dev/src/ ${env.WORKSPACE}"
  }
}

Тем не менее, когда я перезапускаю сборку, она использует старый код.Единственное решение - удалить рабочее пространство до копирования.В обычной файловой системе Linux копия перезаписывает место назначения.Почему Дженкинс ведет себя иначе - то есть старые файлы не перезаписываются?Из синтаксиса кажется, что он просто запускает команду оболочки, так почему же он не имеет ожидаемого поведения?

1 Ответ

0 голосов
/ 01 октября 2018

Это потому, что Jenkins запускается на главном узле, а рабочее пространство будет на рабочем узле.

, когда кодовые блоки checkout scm и sh "" находятся на разных этапах, файлы не будут сохранены с первого этападругим.Вы должны использовать stash & unstash.когда вы прячете путь к каталогу, файлы в этом каталоге будут доступны для несжатого шага на более поздних этапах.

Jenkins doc - здесь

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