Manually activated step

Is there a way to have a step that could be executed for a deployment, but is by default not executed?
The reason I have for this is that I have two different deployment paths for a particular project. One takes only a short time and is an upgrade of an environment, the other takes several hours to fully deploy.
Generally I wouldn’t do a rebuild but would simply do an upgrade, but for certain occasions (there isn’t really a general rule for this) I would like to run optionally run the rebuild.

Hi Ben,

You can disable individual steps when deploying, but that might not be too convenient if you are doing it all the time. Another alternative might be to set up two projects - one for the full deployment, one for the normal case.

Paul

Hi Paul,

Yeah, I don’t want to have to manually disable a step on every deploy.
The issue that I have with setting up two projects is that with that, it’s not immediately obvious what version of the project is in each environment. Unless I am mistaken, if I deploy with one, it won’t update the other.
Would it be possible to only allow a project to be deployed once another project has completed? Using the same package as the first project?

Thanks,
~Ben~

Hi Ben,

No, there’s no way currently to specify a project dependency.

The best solution that comes to mind might be to build your “full deployment” steps in a way in which they are able to know if they actually need to be run before running. The idea is that all steps always get run during deployment, but they are smart enough to “skip” themselves if nothing needs to be done.

For example, if you had a step to create a database, instead of always attempting to create the database, you could check if it exists first and only create it if it doesn’t. This way the step can be run repeatably rather than conditionally. This is a simplistic example because I don’t know enough about your scenario, but I hope I’m explaining the concept.

Hope that helps,

Paul

Hi Paul,

Thanks for the response, that’s probably what we’ll do (making our steps smarter).

Thanks,
~Ben~

Another way to handle this would be to create copies of your environments and only allow the extra steps for those environments. Not ideal either, but might be a better solution in some cases. For example, it could be Test_Update and Test_FullInstall and so on for each environment.