Используя декларативный файл Jenkinsfile со встроенным в него скриптом, я пытаюсь распаковать файл с подчиненного узла на другой подчиненный узел. Однако этот код:
stage('Unstash key generation script and assign a cron to is if they dont exist'){
agent{
label 'generate'
}
steps {
script{
def cronExists = fileExists 'myCron'
if(!cronExists){
node('generate'){
node('build'){
stash includes: '/var/jenkins/workspace/q-go-pipeline/generateSigningKey.sh', name: 'generate-key'
}
unstash 'generate-key'
}
sh 'echo "*/5 * * * * /var/jenkins/workspace/q-go-pipeline/generateSigningKey.sh" >> myCron'
sh 'crontab myCron'
}
}
}
}
Генерирует тайник ERROR: No files included in stash
. Но когда я захожу на узел build
и проверяю файл, он существует.
Общая суть в том, что если файл cronExists
не существует на ведомом устройстве, то захватите спрятанный файл из узла сборки, поместите его на узел создания, а затем запускайте этот сценарий каждые 5 минут. Если файл существует, он пропустит этот шаг и просто подпишет файл другим скриптом.