У меня есть следующий случай использования:Дженкинс Трубопроводы: Повторное использование рабочего пространство при загрузке на внешнюю Дженкинс Трубопроводного сценария
Checkout/Pull определенной ревизии Git, используя написанный трубопроводный сценарий
(мне это нужно, потому что Я извлечь ревизию динамически)от этого пересмотра, загрузите Jenkins трубопроводный файл, расположенный среди ранее проверил файлы
Этот файл будет опираться на файлы из тех же проверил версию
(таким образом, из же рабочего пространства)
Проблемы: Загруженный Дженкинс-конвейерный-файл запускается на выполнение в нового рабочего пространства. Но он пуст. Мне нужно, чтобы этот файл был выполнен в в том же старом рабочем пространстве.
Я думал, возможно, из-за окружающих node
, потому что ключевое слово node
создает рабочие пространства, как указано в документах. Но когда я попытался загрузить его за пределамиnode
, Дженкинс запретил это из-за «ухода из песочницы».
Примечание: файл jenkins-pipe-file найден и действительно выполнен. Проблема заключается в во время исполнения.
Пожалуйста, посмотрите на примере коде:
встраиваемого трубопровод сценарий
node('master') {
def latestBuildableRevision = readFile '/my/LATEST-BUILDABLE-REVISION.txt'
checkout poll:false,
scm:[$class:'GitSCM', branches:[[name:latestBuildableRevision]],
doGenerateSubmoduleConfigurations:false,
extensions:[[$class: 'CleanBeforeCheckout']], submoduleCfg:[],
userRemoteConfigs:[[credentialsId:'...', url:'...']]]
load 'further-script-logic.jenkins'
}
Файл: дальше-скрипт-logic.jenkins
node('master') {
// make use of certain files
// assumption: pwd() is the *same* workspace which were checked-out before
// problem: it's not, it's a new empty workspace
}
Отлично! И, несколько узлов в вызываемом скрипте DO работают! :) – Iviator
Эта «особенность» была невероятно трудно обнаружить ... Я в восторге от того, что я ее нашел, но должен быть лучше документирован, и нерестование нескольких исполнителей на один конвейер выглядит нелепо и почти глючит, если вы спросите меня, это должна быть функция флажка «прикованное выполнение скрипта» или что-то в этом направлении – sloven