Hi Lee I was looking at this the other day and had a couple of questions.
1. You mentioned that it is a good idea to "copy the broken release to a safe place". Doesn't the rollback task already handle this for you? When I run a rollback, I end up with a rolled-back-release-#{last_release}.tar.gz in the deploy directory. 2. Do you have any suggestions about how you would decide whether it is safe to issue a rollback based on the exit code of the cap command? If for some reason the deploy failed before it created the new release directory, it looks like running a rollback would do the wrong thing and rollback the current good release. As far as I can tell, cap always returns an exit code of 1 when it fails so I am not sure how to use that to determine if we should actually rollback or not. Thanks! Ryan On Wednesday, October 22, 2014 6:32:27 AM UTC-4, Lee Hambley wrote: > > Haha, no worries. > > We actually elected in v3 not to do an automatic rollback, because many > people found it inconvenient to debug, and we're essentially defaulting to > deleting stuff in production. > > There was many weird edge cases with assets being incorrecly removed, etc, > etc, et... nothing that was 100% our fault, but we figured just failing > clearly was a better way to handle that. > > In your own code, you can rescue it, and > Rake::Task["deploy:rollback"].invoke, but it's probably wiser in this case > (and, in my cases, usually) to do a switch on the shell, decide what to do, > and then rollback. > > Of course a rollback is weird, because we have to delete the folder in > order to keep the "newest release" logic working, but often if you had a > bad deploy, you need the contents of that folder to do some forensics. > > For that reason, keep doing what you are doing, and consider adding a task > to copy the broken release to a safe place, before it's removed by it is > removed in the rollback flow > <http://capistranorb.com/documentation/getting-started/flow/>. > > If for some reason cap is failing, but you get a zero-exit status, then > let me know specifically what's going wrong, and I'll fix that, you should > be able to rely on our exit statuses being informative. > > Lee Hambley > -- > http://lee.hambley.name/ > +49 (0) 170 298 5667 > > On 22 October 2014 12:25, Rafa García <cont...@rafagarcia.net > <javascript:>> wrote: > >> Capistrano v3 (3.2.1) >> >> PD: I forgot to paste gem version >> >> 2014-10-22 12:23 GMT+02:00 Rafa García <cont...@rafagarcia.net >> <javascript:>>: >> >>> Hi Lee :D >>> >>> I'm using Capistrano v3. >>> >>> 2014-10-22 12:20 GMT+02:00 Lee Hambley <lee.h...@gmail.com <javascript:> >>> >: >>> >>>> Hi Rafa, (welcome back!) >>>> >>>> Which version, two or three ? >>>> >>>> Lee Hambley >>>> -- >>>> http://lee.hambley.name/ >>>> +49 (0) 170 298 5667 >>>> >>>> On 22 October 2014 11:33, Rafa García <cont...@rafagarcia.net >>>> <javascript:>> wrote: >>>> >>>>> Hi, >>>>> >>>>> I have two applications deployed with Capistrano. In the last deploy >>>>> we had a problem with one of them but rollback was not executed >>>>> automatically. >>>>> >>>>> Deploys are done automatically with jenkins. I achieved to execute >>>>> rollback inside jenkins task capturing status code in a condition and >>>>> then >>>>> executing rollback task. >>>>> >>>>> But I'm wondering (if it's possible) how I can do a rollback >>>>> automatically if any of the deploy tasks fails from Capistrano? >>>>> >>>>> Thanks >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Capistrano" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to capistrano+...@googlegroups.com <javascript:>. >>>>> To view this discussion on the web, visit >>>>> https://groups.google.com/d/msgid/capistrano/CALgP05YcH%3DVRDXYt4HF816ETs0Eb_akUBCn9%2BwmKZsVXigAu5Q%40mail.gmail.com >>>>> >>>>> <https://groups.google.com/d/msgid/capistrano/CALgP05YcH%3DVRDXYt4HF816ETs0Eb_akUBCn9%2BwmKZsVXigAu5Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Capistrano" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to capistrano+...@googlegroups.com <javascript:>. >>>> To view this discussion on the web, visit >>>> https://groups.google.com/d/msgid/capistrano/CAN_%2BVLXTuookt36HZ-qVf1_F%3DEdN5hwFn6aXa1AbRAvD7r%3D4sw%40mail.gmail.com >>>> >>>> <https://groups.google.com/d/msgid/capistrano/CAN_%2BVLXTuookt36HZ-qVf1_F%3DEdN5hwFn6aXa1AbRAvD7r%3D4sw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Capistrano" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to capistrano+...@googlegroups.com <javascript:>. >> To view this discussion on the web, visit >> https://groups.google.com/d/msgid/capistrano/CALgP05Y7sOuzO%2BLmOJLKYaYaqSGbqC0yxJfqJ3H-xfjsm-DmYQ%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/capistrano/CALgP05Y7sOuzO%2BLmOJLKYaYaqSGbqC0yxJfqJ3H-xfjsm-DmYQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Capistrano" group. To unsubscribe from this group and stop receiving emails from it, send an email to capistrano+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/capistrano/7220954f-4d53-484c-b7ac-157b60708465%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.