我正在创建一个运行慢composer install
命令的任务,然后将current
符号链接更改为指向新版本(因为我不希望我的新版本被破坏在打包的过程中它的生命分钟)。
before 'deploy:publishing', :composartisan do
on roles(:app) do
within fetch(:latest_release_directory) do
execute "cd #{current_path} && composer dump-autoload && composer install && php artisan storage:link && php artisan migrate"
end
end
end
这不起作用,因为fetch(:latest_release_directory)
返回当前版本,而不是我们正在构建并将在几分钟内发布的版本。
如何获取我们正在构建的版本的文件夹路径?
答案 0 :(得分:0)
自己找到解决方案。我需要换两行:
within fetch(:latest_release_directory)
成为within release_path
cd #{current_path}
成为cd #{release_path}
这是完整的工作片段......
before 'deploy:publishing', :composartisan do
on roles(:app) do
within release_path do
execute "cd #{release_path} && composer dump-autoload && composer install && php artisan storage:link && php artisan migrate"
end
end
end
有点咆哮,但为什么Capistrano网站上没有真正记录这个?我在StackOverflow上浏览其他Capistrano问题时偶然发现了我的解决方案。现在我回顾一下,我看到release_path
仅在回滚页面(http://capistranorb.com/documentation/getting-started/rollbacks/#deployreverting)的部署:还原部分中提及过一次。列出并解释所有可用变量的页面对我来说似乎是一个基本要素。
[不要成为开源的后座司机,当我觉得我的Capistrano技能足够可靠地写下它时,我会尽力分发文档并自行解决。] < / em>的
&LT; /咆哮&GT;