Jenkins - Git插件在由CI启动时不为repo创建本地子目录

时间:2012-10-01 22:06:08

标签: git unix continuous-integration jenkins

我使用git设置Jenkins并使用github挂钩进行持续集成。我正在使用自定义工作区目录。在源代码管理下,我使用Git。我只检查了主分支,并在$“repo(可选)的子目录”字段中将$ GIT_BRANCH- $ GIT_COMMIT作为我的目录位置。在构建部分,我正在执行一个shell,我正在执行:

- pwd
- ls
- cd $GIT_BRANCH-$GIT_COMMIT
- ...

我遇到的问题是在执行时,“cd $ GIT_BRANCH- $ GIT_COMMIT。”我收到以下错误:

- /tmp/hudson7624299777846840848.sh: 4: cd: can't cd to master-9297429dba145737291168f284796421f73c0ee3 

Per pwd,我在正确的目录中。 ls未将目录显示为正在创建,这就是我收到此错误的原因。构建失败后,我检查了构建主机以查看是否已执行克隆并且已创建目录。它似乎没有。但是,当我手动执行构建时,构建通过。 ls显示目录。

任何关于为什么会发生这种情况的见解将不胜感激。我的目标是创建一个包含每个构建的最新源的新目录,这样我就可以保留测试,指标等的历史。我是Jenkins的新手,所以如果有更好的方法可以做到这一点我就是开放的建议。

2 个答案:

答案 0 :(得分:1)

可以使用自定义工作区目录字段

中的以下语法解析您的变量
${GIT_BRANCH}-${GIT_COMMIT}

答案 1 :(得分:0)

我之前遇到过类似的问题。我尝试在“自定义工作区目录”字段中使用Linux命令别名是不成功的。

我将重点介绍一个辅助选项: 如果需要存档,则可以将./recent指定为工作空间目录并添加一系列生成后命令。例如:

MMMDD=`date +%b%d`
cp -R ./recent ./$MMMDD