php 仅部署构建文件夹

php deploy build folder only

我目前正在使用带有 grunt-ssh-deploy 的 Grunt 在通过存档完成构建后部署构建/文件夹,如下所示:

'ssh-deploy-release': {
        options: {
            localPath: 'build',
            currentReleaseLink: 'current',
            releasesToKeep: 3,
// ...

不过,这是从本地路径部署文件夹,我可以使用部署程序执行此操作:

task('deploy:staging', function() {
    writeln('<info>Deploying...</info>');
    upload('build/', '{{release_path}}/public');
// ...

但我想从 repo 部署特定的发布版本并使用 php-deployer 但我找不到如何 only 部署构建文件夹。

是否可以使用部署程序从 git 存储库部署特定文件夹?

经过更多研究,特别是 ,我想出了一个适用于 bitbucket 的新部署任务(github 用户可能想使用 svn export,如评论区):

task('deploy:folder', function(){
    $branch = env('branch');
    $folder = get('folder');

    run("git archive --remote=git@bitbucket.org:<repo> $branch $folder | tar xvf -")
    // then move the folder content one level
    // ...
});

似乎也可以使用 git sparse checkout