Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins-Git插件在由CI启动时没有为repo创建本地子目录_Git_Unix_Continuous Integration_Jenkins - Fatal编程技术网

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

Jenkins-Git插件在由CI启动时没有为repo创建本地子目录,git,unix,continuous-integration,jenkins,Git,Unix,Continuous Integration,Jenkins,我让Jenkins使用git进行设置,并使用github钩子进行持续集成。我正在使用自定义工作区目录。在源代码管理下,我使用Git。我只是签出主分支,在“repo的本地子目录(可选)”字段中,$GIT_branch-$GIT_COMMIT作为我的目录位置。在构建部分,我正在执行一个shell,其中我正在执行: - pwd - ls - cd $GIT_BRANCH-$GIT_COMMIT - ... 我遇到的问题是,在执行“cd$GIT_分支-$GIT_提交”时,我收到以下错误: - /tmp

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

- pwd
- ls
- cd $GIT_BRANCH-$GIT_COMMIT
- ...
我遇到的问题是,在执行“cd$GIT_分支-$GIT_提交”时,我收到以下错误:

- /tmp/hudson7624299777846840848.sh: 4: cd: can't cd to master-9297429dba145737291168f284796421f73c0ee3 
根据pwd,我在正确的目录中
ls
不显示正在创建的目录,这就是我收到此错误的原因。构建失败后,我检查了构建主机,查看克隆是否已执行,目录是否已创建。似乎没有。但是,当我手动执行构建时,构建将通过
ls
显示目录


如果您能在这里了解这种情况发生的原因,我们将不胜感激。我的目标是为每个构建创建一个包含最新源代码的新目录,这样我就可以维护测试、度量等的历史记录。我对Jenkins是新手,所以如果有更好的方法,我愿意接受建议。

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

我将突出显示第二个选项: 如果需要存档,可以指定./recent作为工作区目录,并添加一系列生成后命令。例如:

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

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

${GIT_BRANCH}-${GIT_COMMIT}

你用的是什么詹金斯版本?(当前有一个错误:)。您是否尝试在shell中添加一个
mkdir$GIT_分支-$GIT_COMMIT
?@VonC,我的版本是1.483<代码>mkdir$GIT_分支-$GIT_COMMIT在shell中工作,但不幸的是,代码尚未签出。因此,环境变量可以正常工作,但初始克隆似乎失败了,我在日志中没有看到任何错误。那么,您可以尝试在shell中添加git克隆本身,看看它是否可以这样工作吗?这可能会起作用,但由于我不再使用git插件,$git_BRANCH和$git_COMMIT是否可用?或者我必须手动设置这些变量吗?是的,您必须手动设置这些变量(仅用于此测试),因为git插件中有:谢谢。这实际上解决了我的问题。我真的不知道为什么我会得到我的第一期。我的理论是它与GIT插件中的“repo的本地子目录”字段有关。然而,通过使用上述内容,我不仅能够绕过使用该字段,而且还满足了我的初衷(每个构建都有一个独特的工作空间)。