波德XCode中机器人触发安装

问题描述:

于是我开始用下面的波德XCode中机器人触发安装

cd "${XCS_PRIMARY_REPO_DIR}" 
pwd 
pod install --verbose 

预集成触发它给了我

pod: command not found 

简单吧?找不到pod二进制文件,我只是将它指向路径。简单。

cd "${XCS_PRIMARY_REPO_DIR}" 
pwd 
/usr/local/bin/pod install --verbose 

这给了我下面的

env: ruby_executable_hooks: No such file or directory 

这让我想起红宝石没有树立正确的为触发运行。现在,在构建服务器的终端中了解一个简单的“pod安装”,可以解决所有这些问题,并且运行良好并且非常棒。该项目肯定会在构建服务器上正确构建。

所以,因为我认为环境搞砸了,我会尝试从包装目录运行它,它应该设置好,很好。这是正确的吗?无论何时我需要ruby在构建的运行脚本阶段运行,历史上都是如此。所以我们在这里触发。

~/.rvm/wrappers/[email protected]/pod install 

我考这一个在构建服务器的终端,它的冷静了,所以我把它改成了扳机,我得到这个

/Users/XcodeServer/.rvm/wrappers/[email protected]/pod: line 7: exec: pod: not found 

:/好吧,我破解了荚来源,看看它在线7上说什么

exec pod "[email protected]" 

我不是一个红宝石的人,但它对我没有任何意义。哦,是的,我尝试下载的CocoaPods直接进入USR/local/bin目录,而不是让把它安装到其他目​​录,先卸载所有的CocoaPods,然后通过执行以下操作

sudo gem install -n /usr/local/bin cocoapods --pre 

我把 - 事先因为我需要1.1.0.rc.2来解决构建swift的bug。任何人,这一切都不起作用。看起来像其他人可以简单地把他们的XCode bot触发器,并让他们工作

cd /path/to/proj/ 
pod install 

请指教。谢谢。

+0

我在同一条船上。你有工作吗? –

+0

我让我的触发器运行脚本。我会回答这个问题。 – Biclops

我有触发器在安装pod的生成服务器上运行脚本。

因此,让一个shell脚本您的构建服务器上有以下:

#make the the encoding is correct 
export LANG=en_US.UTF-8 

# fix the path so Ruby can find it's binaries 
export PATH=/usr/local/bin:$PATH 
echo "PATH: $PATH" 

# update or install depending on what we got 
if [ -d ${PODS_DIR} ]; then 
    # pods directory exist 
    echo "==================" 
    echo " Delete Pods" 
    echo "==================" 

    # delete cocoapods files if they exist 
    rm -rf "${PODS_DIR}" 
    eval rm "${BS_SRCROOT}/Podfile.lock" 
    eval rm -rf "${BS_SRCROOT}/${BS_EXECUTABLE_NAME}.workspace" 
    echo "Deleted Pods directory ${PODS_DIR}" 
    echo "Deleted ${BS_EXECUTABLE_NAME}.workspace" 
    echo "Deleted Podfile.lock" 
else 
    # no need to delete pod files 
    echo "Pods NOT detected at ${PODS_DIR}" 
fi 

echo "==================" 
echo " Install Pods" 
echo "==================" 

# make sure we are where we need to be 
eval cd "${BS_SRCROOT}" 
pwd 
~/.rvm/wrappers/[email protected]/pod install 

记住命名的脚本时使用的“上海”后缀。然后在你的机器人触发像这样运行

sh ~/Path/to/Scripts/podUpdateHack.sh 

傻类的脚本,但它的工作原理,¯\ _(ツ)_ /¯噢所有这些愚蠢的evals在那里,因为BS_SRCROOT是一个环境变量XCode机器人,它引用环境变量$ XCS_PRIMARY_REPO_DIR。您可以用$ XCS_PRIMARY_REPO_DIR替换它并删除eval。我不记得是谁定义了可能来自工作区的PODS_DIR,BS_EXECUTABLE_NAME是对项目中可执行文件名称的重新定义,因为它在此时不存在。

希望能帮助亲妹妹。