根据 git 分支构建 jenkins

Build in jenkins depending on git branch

大家好。我正在尝试解决依赖于 git 分支的构建问题。

预期结果:在“if = master”之后,应创建 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:\Jenkins\workspace\Api\Api_DEV\API_Build_Master_Test\Master"
) else (
    MKDIR "C:\Jenkins\workspace\Api\Api_DEV\API_Build_Master_Test\Various"
)

更新:

SET "branch=%GIT_BRANCH:*/ =%"
if "%branch%" == "test" (ECHO Branch test)

ECHO branch is set to ===%branch%===

SET "BUILD_ROOT=C:\Jenkins\workspace\Api\Api_DEV\API_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")
)