大家好。我正试图解决一个问题与构建依赖于git分支。
预期结果:在"if = master"之后应该创建主文件夹。如果是" If != Master"然后各种。我怀疑这个条件根本不起作用,因为文件夹总是被创建的。
我试过了:
SET branch=%GIT_BRANCH:*/=%
if ($ branch -eq "test") {
Write-Output "Branch test"
}
if ($ branch = "master") {
MD "C: Jenkins workspace Api Api_DEV API_Build_Master_Test Master"
}
else {
MD "C: Jenkins workspace Api Api_DEV API_Build_Master_Test Various"
}
但是这个方法根本不起作用,它给出了以下错误C: Jenkins workspace Api Api_DEV API_Build_Master_Test>SET branch = test-eq在这个时候是出乎意料的。我在jenkins中为windows做步骤,也就是说,我在cmd
下执行问题中的代码似乎是cmd和PowerShell的混合,两者都具有任何一种语言的无效语法。第一行似乎删除了GIT_BRANCH变量中第一个SOLIDUS(正斜杠)字符之前的所有内容。
这会发生什么?
SET "branch=%GIT_BRANCH:*/ =%"
if "%branch%" == "test" (ECHO Branch test)
if ("%branch%" == "master") (
MKDIR "C:JenkinsworkspaceApiApi_DEVAPI_Build_Master_TestMaster"
) else (
MKDIR "C:JenkinsworkspaceApiApi_DEVAPI_Build_Master_TestVarious"
)
更新:
SET "branch=%GIT_BRANCH:*/ =%"
if "%branch%" == "test" (ECHO Branch test)
ECHO branch is set to ===%branch%===
SET "BUILD_ROOT=C:JenkinsworkspaceApiApi_DEVAPI_Build_Master_Test"
if ("%branch%" == "master") (
IF NOT EXIST "%BUILD_ROOT%Master" (MKDIR "%BUILD_ROOT%Master")
) else (
IF NOT EXIST "%BUILD_ROOT%Various" (MKDIR "%BUILD_ROOT%Various")
)