jenkins在作业被杀死后将@(at符号)添加到工作区名称

uubf1zoe  于 2023-10-17  发布在  Jenkins
关注(0)|答案(1)|浏览(147)

我使用jenkins流水线项目来构建我的基于OpenEmbedded的项目。我的声明性管道的节点包含

customWorkspace "/data/jenkins/oe/"

Jenkins实际上构建了一个更深的目录,

/data/jenkins/oe/project-name/

这不是问题但是在我在开发过程中杀死了一个作业之后,Jenkins现在在path中添加了at符号,例如

/data/jenkins/oe/project-name@2/

这会杀死OE
即使我删除了/data/jenkins/oe/中的所有内容,...@2目录也会恢复。我也试过启用基于this bug的并发构建,但这些都不起作用。
是什么导致了这种行为,以及如何避免它?是禁用at符号的用法,还是禁用dash符号的用法?

xurqigkl

xurqigkl1#

我们在并发构建中也遇到了同样的问题。
我们的解决方案是使用一个不包含讨厌字符的自定义工作区文件夹。
以下是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
...
}

在windows中,自定义工作区的路径为

customWorkspace "W:\\workdir\\my_pipeline\\${buildFolder}"

因此,它将每个非字母数字字符替换为_(下划线),并在文件夹的末尾添加额外的_custom后缀,以防止名称冲突。

相关问题