Jenkins生成但Visual Studio不支持的文件夹名称中的百分比

t9eec4r0  于 2022-11-21  发布在  Jenkins
关注(0)|答案(1)|浏览(172)

我想在Subversion中使用Jenkins多分支管道.作业被配置为包含分支branches/*因此,对于每个分支(foo),它会创建一个名为branches%2Ffoo的文件夹,该文件夹对应于一个分支专用作业.
到目前为止还不错。不太漂亮,但不碍事。
然后branch-job在它的文件夹中构建一个MSVC项目。这个MSVC项目在命令中使用变量$(ProjectDir)定义了一个自定义的构建步骤,它可以通过类似C:\my\path\branches%2Ffoo\的方法来解析。下面是阻塞错误:此路径的CALL或甚至DIR失败,并显示错误“系统找不到指定的文件”。
从控制台命令中输入相同的命令可以正常工作。只有在MSVC自定义构建步骤中它不起作用。
有没有人知道如何解决Jenkins多分支管道创建的文件夹的百分比,或MSVC构建中的百分比支持?

dnph8jn4

dnph8jn41#

为了克服路径中的%2F,我们使用由分支名称生成的自定义文件夹名称。
首先,获取BRANCH_NAME,并替换所有非字母数字字符。
以后,使用此文件夹而不是默认工作区。
在Jenkins的文件中:

buildFolder = java.net.URLDecoder.decode(BRANCH_NAME, "UTF-8");

// Replace nasty chars
buildFolder = buildFolder.replaceAll("[^a-zA-Z0-9]", "_");

pipeline {
    agent {
        node {
            label 'my_project'
            customWorkspace "W:\\workdir\\${buildFolder}"
        }
    }
    ...
}

在unix管道中,对于customWorkspace,我们使用类似/var/lib/jenkins/workspace/${buildFolder}的代码

相关问题