public function deploy(
        $stage,
        $branchOrTag,
        $revision = '',
        $opts = [
            self::OPT_REINSTALL_PROJECT => false,
            self::OPT_DROP_VENDOR       => false,
            self::OPT_DROP_DATABASE     => false,
            self::OPT_DEPLOYER_PARALLEL => false,
        ]
    ) {
        $this->startTimer();

        $this->deployMagentoSetup($branchOrTag, $revision, $opts);

        $this->deployArtifactsGenerate();

        $this->deployDeploy($stage, $branchOrTag, $opts);

        $this->stopTimer();
        $this->printRuntime(__FUNCTION__);
    }