如果我们尝试创建一个 '询问用户' 的任务,例如询问关于分支的一些信息,但是我们仍然希望使用并行部署,我们可能注意到,它正在运行,但是程序不会等待用户输入。
要解决此问题,我们需要创建一个本地任务,并在该任务中询问用户关于分支的一些信息:
task('what_branch', function(){
$branch = ask('What branch to deploy');
on(roles('app'), function($host) use ($branch) {
set('branch', $branch);
});
});
并在 deploy 任务前调用该任务:
before('deploy', 'what_branch');
现在它应该按预期工作,并且仅向用户询问分支一次。
$dep deploy -p
➤ Executing task what_branch
What branch to deploy? master
✔ Ok
✔ Executing task deploy:prepare
✔ Executing task deploy:release
...