1. A method comprising: receiving, by a computer system, a deployment plan for a software application, the deployment plan specifying a plurality of artifacts for the software application and default deployment logic for the plurality of artifacts; and processing, by the computer system, the deployment plan, the processing comprising: determining, for each artifact in the plurality of artifacts, whether the artifact is associated with a user-defined condition; and if the artifact is associated with a user-defined condition: evaluating the user-defined condition; and executing conditional deployment logic for the artifact based on the evaluation of the user-defined condition.