public function deployBuild($opts = [
        'build-path' => null,
        'deploy-type' => 'git',
        'include-asset' => [],
    ])
    {
        $this->executeCommandHook(__FUNCTION__, 'before');
        $build_path = $this->buildPath($opts);
        $deploy_type = $opts['deploy-type'];

        if (!file_exists($build_path)) {
            $this->_mkdir($build_path);
        }
        $this->executeBuild(__FUNCTION__, $build_path);
        $this->executeIncludeAssets($opts['include-asset'], $build_path);
        $this->executeCommandHook(__FUNCTION__, 'after');

        $continue = !is_null($deploy_type)
            ? $this->doAsk(new ConfirmationQuestion('Run deployment? (y/n) [yes] ', true))
            : false;

        if (!$continue) {
            return;
        }

        $this->deployPush([
            'build-path' => $build_path,
            'deploy-type' => $deploy_type
        ]);
    }