You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by robert mena <ro...@gmail.com> on 2010/03/19 21:55:50 UTC

Implementing a 'deploy' script / webdav

Hi,

I am using svn (webdav) and I need to allow the developers to request that
updates are made in a staging server.

Since the developers can't access the server from the console/ssh I'd like
to create a system where the developer would list the files and request.
My script would pull the requests and do a svn update xxxx and return to the
user the output of the command.

I do not want to reinvent the wheel so tips would be great.

Thanks.

Re: Implementing a 'deploy' script / webdav

Posted by robert mena <ro...@gmail.com>.
hi ryan,

thanks.

I've looked but it seems to work only with ssh and does not mention webdav.

On Fri, Mar 19, 2010 at 6:35 PM, Ryan Schmidt <
subversion-2010a@ryandesign.com> wrote:

>
> On Mar 19, 2010, at 16:55, robert mena wrote:
>
> > I am using svn (webdav) and I need to allow the developers to request
> that updates are made in a staging server.
> >
> > Since the developers can't access the server from the console/ssh I'd
> like to create a system where the developer would list the files and
> request.   My script would pull the requests and do a svn update xxxx and
> return to the user the output of the command.
> >
> > I do not want to reinvent the wheel so tips would be great.
>
> I suggest you use SVN::Notify::Mirror. Developers who wish to promote
> something to the staging server need only create a tag with a name of a
> certain format, and SVN::Notify::Mirror will deploy the contents of the tag
> to the right place.
>
>

Re: Implementing a 'deploy' script / webdav

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Mar 19, 2010, at 18:52, robert mena wrote:

> On Fri, Mar 19, 2010 at 6:35 PM, Ryan Schmidt wrote:
> 
>> On Mar 19, 2010, at 16:55, robert mena wrote:
>> 
>> > I am using svn (webdav) and I need to allow the developers to request that updates are made in a staging server.
>> >
>> > Since the developers can't access the server from the console/ssh I'd like to create a system where the developer would list the files and request.   My script would pull the requests and do a svn update xxxx and return to the user the output of the command.
>> >
>> > I do not want to reinvent the wheel so tips would be great.
>> 
>> I suggest you use SVN::Notify::Mirror. Developers who wish to promote something to the staging server need only create a tag with a name of a certain format, and SVN::Notify::Mirror will deploy the contents of the tag to the right place.
> 
> Just to make sure my 'requirements' are clear I have a repository (/repos) where I have several projects like clientA, clientB etc.
> 
> They are all websites so the devel team (testers, layout etc) adds, removes, updates directories and files related.  When they've reached a point where they need to show something for the client (or an outside tester) they need to 'publish' their modifications to a server (different than the devel one).
> 
> For security and technical reasons (try teaching designers about ssh :) ) they are not allowed to access the remote server (staging). So now I have someone with a list of files that he does a svn update in the remote server.  This is boring and takes one person for a mechanical job (automation! automation!).
> 
> So my take would be:
> - create a simple app where the developer puts the name of the directory or files that he/she wants to be published in the staging server
> - another app will run from the crontab of the staging server and fetch the pending requests, do an exec svn xxxx (the args will be sanitized for security) and save the output
> 
> Why webdav : essentially for the granularity of the access/auth control.
> 
> I'd like to cut as many steps as possible so the request for feedback and/or code snippets for the app.
> 
> I'll use php for both parts.

SVN::Notify::Mirror is what you want.

There is no restriction on the method you use to serve your repository; svn://, svn+ssh://, http://, https:// should all be fine.

If the machine where you want to deploy the working copy (the staging server) is different from the repository server, then the repository server must be able to reach the deployment server via ssh or I believe rsync.


Re: Implementing a 'deploy' script / webdav

Posted by robert mena <ro...@gmail.com>.
Hi,

Just to make sure my 'requirements' are clear I have a repository (/repos)
where I have several projects like clientA, clientB etc.

They are all websites so the devel team (testers, layout etc) adds, removes,
updates directories and files related.  When they've reached a point where
they need to show something for the client (or an outside tester) they need
to 'publish' their modifications to a server (different than the devel one).

For security and technical reasons (try teaching designers about ssh :) )
they are not allowed to access the remote server (staging). So now I have
someone with a list of files that he does a svn update in the remote server.
 This is boring and takes one person for a mechanical job (automation!
automation!).

So my take would be:
- create a simple app where the developer puts the name of the directory or
files that he/she wants to be published in the staging server
- another app will run from the crontab of the staging server and fetch the
pending requests, do an exec svn xxxx (the args will be sanitized for
security) and save the output

Why webdav : essentially for the granularity of the access/auth control.

I'd like to cut as many steps as possible so the request for feedback and/or
code snippets for the app.

I'll use php for both parts.

On Fri, Mar 19, 2010 at 6:35 PM, Ryan Schmidt <
subversion-2010a@ryandesign.com> wrote:

>
> On Mar 19, 2010, at 16:55, robert mena wrote:
>
> > I am using svn (webdav) and I need to allow the developers to request
> that updates are made in a staging server.
> >
> > Since the developers can't access the server from the console/ssh I'd
> like to create a system where the developer would list the files and
> request.   My script would pull the requests and do a svn update xxxx and
> return to the user the output of the command.
> >
> > I do not want to reinvent the wheel so tips would be great.
>
> I suggest you use SVN::Notify::Mirror. Developers who wish to promote
> something to the staging server need only create a tag with a name of a
> certain format, and SVN::Notify::Mirror will deploy the contents of the tag
> to the right place.
>
>

Re: Implementing a 'deploy' script / webdav

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Mar 19, 2010, at 16:55, robert mena wrote:

> I am using svn (webdav) and I need to allow the developers to request that updates are made in a staging server.
> 
> Since the developers can't access the server from the console/ssh I'd like to create a system where the developer would list the files and request.   My script would pull the requests and do a svn update xxxx and return to the user the output of the command.
> 
> I do not want to reinvent the wheel so tips would be great.

I suggest you use SVN::Notify::Mirror. Developers who wish to promote something to the staging server need only create a tag with a name of a certain format, and SVN::Notify::Mirror will deploy the contents of the tag to the right place.