Ada*_*hon 8 jenkins jenkins-pipeline
我使用 jenkins 流水线项目来构建我的基于 OpenEmbedded 的项目。我的声明性管道的节点包含
customWorkspace "/data/jenkins/oe/"
Run Code Online (Sandbox Code Playgroud)
Jenkins 实际上构建了一个更深的目录,在
/data/jenkins/oe/project-name/
Run Code Online (Sandbox Code Playgroud)
这不是问题。但是在我在开发过程中杀死了一项工作之后,jenkins 现在在路径中添加了 at 符号,例如
/data/jenkins/oe/project-name@2/
Run Code Online (Sandbox Code Playgroud)
这会杀死 OE。
该...@2如果我删除一切从目录甚至恢复/data/jenkins/oe/。我也尝试基于此错误启用并发构建,但这些都不起作用。
是什么导致了这种行为以及如何避免它?要么禁用 at 符号使用,要么禁用子目录使用?
我们在并发构建方面也遇到了同样的问题。
我们的解决方案是使用不包含讨厌字符的自定义工作区文件夹。
这是来自的片段Jenkinsfile:
// Custom workplace without nasty characters and prevent same name (master is master without nasty chars)
buildFolder = java.net.URLDecoder.decode(BRANCH_NAME, "UTF-8");
buildFolder = buildFolder + '_custom'
buildFolder = buildFolder.replaceAll("[^a-zA-Z0-9]", "_");
//The actual pipeline
pipeline {
agent {
node {
label 'my pipeline'
customWorkspace "/var/lib/jenkins/workspace/my_pipeline/${buildFolder}"
}
}
// remaining steps
...
}
Run Code Online (Sandbox Code Playgroud)
在 Windows 中,自定义工作区的路径是
customWorkspace "W:\\workdir\\my_pipeline\\${buildFolder}"
Run Code Online (Sandbox Code Playgroud)
因此,它将每个非字母数字字符替换为(下划线),并在文件夹末尾_添加额外的后缀以防止名称冲突。_custom