我有一台专用服务器,它安装了整个Lamp-Stack,SVN和Hudson。 我想创建一个自由式Hudson作业,从我的SVN-repository中获取最新的源代码并将其放入我的/ var / www / myWebApp文件夹。
shell脚本需要如何显示?
修改
当我使用
时svn export myRepoURL myWebAppFolder
我得到一个错误,说:
Started by user anonymous
Reverting http://myIpAdress/repos
Updating http://myIpAdress/repos
At revision 2
no change for http://myIpAdress/repos since the previous build
[workspace] $ /bin/sh -xe /tmp/hudson7864414135197533508.sh
+ svn export http://myIpAdress/repos/myRepo
/var/www/myWebApp
Authentication realm: <http://myIpAdress> Subversion Repository
Password for 'hudson': Authentication realm: <http://myIpAdress> Subversion Repository
Username: svn: PROPFIND request failed on '/repos/myRepo'
svn: PROPFIND of '/repos/myRepo': authorization failed (http://myIpAdress)
Finished: FAILURE
答案 0 :(得分:3)
它应该类似于下面的
svn export [您的svn网址] / var / www / myWebApp
如果我在这里遗失了什么,请告诉我吗?
答案 1 :(得分:1)
我也会运行一份副本。请确保不要复制.svn文件夹和其他无法从外部访问的文件。
我也查找了svn export
命令,它看起来更好。如果您的工作设置为从svn结帐,您也可以运行svn export ${WORKSPACE}/* /var/www/myWebApp
。这只会复制受源代码管理的文件。但是,在将其部署到目标之前,它将为您提供更改某些配置(对于您正在部署的环境非常重要)的选项。
在任何情况下都非常重要,想出一种方法来检查它是否成功。所以至少检查一下你运行的所有命令的错误代码。
答案 2 :(得分:0)
编写一个脚本来复制(使用'cp'命令)作业工作区中的所有文件到您想要的任何位置。您应该使用Hudson提供的'WORKSPACE'环境变量,它为您提供作业工作空间的路径。该脚本很可能能够在你正在使用的shell中运行。
答案 3 :(得分:0)
我认为前面提到的svn export
是正确的解决方案,但是如果您要复制一下,我建议使用rsync
或tar
这样的内容。两者都允许您排除某些文件或目录,请参阅--exclude
命令行选项。 (谷歌搜索tar exclude svn
将指向正确的方向。)Rsync's advantage是它只会复制更改,因此当只有少量文件发生更改时,部署会更快。
需要考虑的其他事项: