2

我使用 git 设置了 Jenkins,并使用 github 挂钩进行持续集成。我正在使用自定义工作区目录。在源代码管理下,我使用 Git。我只检查了主分支,并且在“本地子目录(可选)”字段中将 $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 

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

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

4

2 回答 2

1

您的变量可以在自定义工作区目录字段中使用以下语法解析

${GIT_BRANCH}-${GIT_COMMIT}
于 2012-10-08T21:45:54.153 回答
0

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

我将强调第二个选项:如果需要归档,您可以指定 ./recent 作为工作区目录并添加一系列构建后命令。例如:

MMMDD=`date +%b%d`
cp -R ./recent ./$MMMDD
于 2012-10-08T19:58:52.827 回答