我发现这个问题在不同的地方以不同的形式被问到,甚至我自己也反对这个问题。我相信我已经找到了解决方案,在这种情况下,我遇到了这一点,我很好奇,如果它帮助其他人谁类似地遇到这一点。
我发现要做的事情的简短答案是,将管道的第一阶段设置为具有创建工作区的逻辑的已知模块。即:
pipeline {
agent any
stages {
stage('Opening Workspace') {
steps {
script {
def date = new Date()
def data = "I am arbitrary text\nSecond line\n" + date
writeFile(file: 'workspacecreated.txt', text: data)
sh "ls -l"
}
}
}
stage('alltherest') {
<< the rest of your steps and end of your pipeline to paste here>>
在我的战斗中,我的第一阶段是ansiblePlaybook()
,事实证明.似乎并没有尝试创建这个工作区。我在jenkins中将此作为一个针对ansible插件的bug提交。
所以第一个问题是,如果你在jenkins中遇到这个错误消息,将第一步设置为writefile对你有帮助吗?如果是这样,你最初的第一步是什么?也许你应该把第一步插件无法为自己创建工作区作为一个bug发布给jenkins。
第二个问题是,有没有人有一个更优雅的解决方案?
1条答案
按热度按时间wh6knrhe1#
1.创建文件夹/var/lib/jenkins/workspace/projectname
1.将文件夹的所有权更改为jenkins用户
1.在步骤块中添加行
sh 'cd /var/lib/jenkins/workspace/projectname'
,即steps { sh 'cd /var/lib/jenkins/workspace/projectname' script { .................
安装jenkins后第一次运行管道时执行此操作,之后无需执行此操作