Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am hoping to find an easy tool or method, that allow's managing our code deployment.

Here are the features I hope this solution has:

  1. Either web-based or batch file, that given a list of files, will communicate to our production server, to backup those files in different folders, and zip them and put them in a backup code folder.

  2. Then it records the name, date/time, and purpose of the deployment.

  3. Then it sends the files to their proper spot on the production server.

I don't want too complex an interface to doing the deployment's because then they might never use it.

Or is what I am asking for too unrealistic?

I just know that my self-discipline isn't perfect, and I'd rather have a tool I can rely on to do what needs to be done, then my own memory of what exact steps I have to take every time.

How do you guys, make sure everything get's deployed correctly, and have easy rollback in case of any mistakes?

share|improve this question
    
Subversion and a post commit hook? Have the server with a working copy, commit to the repo, have the post commit hook to update the server working copy. –  Vitor Mar 4 '11 at 14:50
    
We're not using subversion, something called QVCS by Qumasoft. –  crosenblum Mar 4 '11 at 14:58
    
Can you guys suggest something not based on us changing what source control we use? –  crosenblum Mar 4 '11 at 14:59
    
With Capistrano you could write your own QVCS driver. –  Htbaa Mar 4 '11 at 15:28
    
And I aplogize, if I didn't make this clear, I need a solution in windows os. –  crosenblum Mar 4 '11 at 15:30

3 Answers 3

up vote 2 down vote accepted

All this can be done by a batch file. The following are the basic steps need to happen in batch file:

  1. Get current date time in a variable.
  2. Make copies of the production directory into folders with the current date time. Zip the folder if you want.
  3. Replicate the build dropping folder to production directories. You can also skip some files you don't want to overwrite (like web.config). Both xcopy and robocopy allow skipping files.

Except the first step, the other two steps are very basic command line operations. Regarding the first one, the following code shows how to get a directory with date time:

for /f "tokens=1-3 delims=/ " %%A in ("%DATE%") DO (
  set DATESTR=%%C%%A%%B
)

for /f "tokens=1-3 delims=:." %%F in ("%TIME%") DO (
  set TIMESTR=%%F%%G%%H
)

set CURRENTDT=%DATESTR%T%TIMESTR%

:: now you can use the date time in a folder name:
xcopy /e \\production1\site1 \\backup\site1\backup-%CURRENTDT%\
share|improve this answer

Sounds like a job for Capistrano with the Railsless-Deploy plugin.

share|improve this answer
    
I was going to say Capistrano too. If nothing else, looking at what Capistrano offers you is a great way to get an idea of what is available to you. –  glenatron Mar 4 '11 at 15:16
    
Is Capistrano only for Linux? –  crosenblum Mar 4 '11 at 15:30
    
Ruby runs on Windows, but 1.5 year ago I couldn't get it to run on Windows. So instead I downloaded the free VMWare Server edition and installed a Ubuntu virtual server and configured it for Capistrano. Perhaps Windows support has improved now. –  Htbaa Mar 4 '11 at 15:34

I'm pretty sure you could do this with TFS--if you are working with the MS development stack

share|improve this answer
    
What is TFS? Any links, descriptions? –  crosenblum Mar 4 '11 at 15:13
    
@crosenblum TFS is Microsoft Team Foundation Server--their much improved replacement for Source Safe –  Muad'Dib Mar 4 '11 at 15:50

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.