我使用声明性的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分钟运行一次该脚本。如果该文件确实存在,它将跳过此步骤,并使用另一个脚本对文件进行签名。