我使用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的新手,所以如果有更好的方法可以做到这一点我就是开放的建议。
答案 0 :(得分:1)
可以使用自定义工作区目录字段
中的以下语法解析您的变量${GIT_BRANCH}-${GIT_COMMIT}
答案 1 :(得分:0)
我之前遇到过类似的问题。我尝试在“自定义工作区目录”字段中使用Linux命令别名是不成功的。
我将重点介绍一个辅助选项: 如果需要存档,则可以将./recent指定为工作空间目录并添加一系列生成后命令。例如:
MMMDD=`date +%b%d`
cp -R ./recent ./$MMMDD