- 本文地址: https://www.yangdx.com/2022/11/228.html
- 转载请注明出处
Laravel Envoy 是一套在远程服务器上执行日常任务的工具。使用了 Blade 风格语法,你可以轻松地配置部署任务、Artisan 命令的执行等。
具体文档:https://learnku.com/docs/laravel/9.x/envoy/12265
下面是一个示例(Envoy.blade.php):
@servers(['serv_dev' => 'root@123.123.123.123','serv_prod' => 'root@234.234.234.234'])
@story('deploy_dev',['on' => 'serv_dev'])
git_dev
@endstory
@story('deploy_prod',['on' => 'serv_prod'])
git_prod
@endstory
@task('get_composer')
if [ ! -f 'composer.phar' ]; then
echo 'Downloading composer.phar ...'
curl -s https://mirrors.aliyun.com/composer/composer.phar -o composer.phar
fi
@endtask
@task('chown_www')
find ./ ! -name '.user.ini' -print0 | xargs -0 chown www:www
@endtask
@task('git_dev')
cd /www/wwwroot/project_dev
git checkout dev
git pull origin dev
@run('chown_www')
@if($composer)
@run('get_composer')
su www -s /bin/bash -c '/www/server/php/81/bin/php composer.phar install'
@endif
su www -s /bin/bash -c '/www/server/php/81/bin/php artisan config:clear'
su www -s /bin/bash -c '/www/server/php/81/bin/php artisan route:clear'
su www -s /bin/bash -c '/www/server/php/81/bin/php artisan view:clear'
@run('chown_www')
@endtask
@task('git_prod')
cd /www/wwwroot/project_prod
git checkout master
git pull origin master
@run('chown_www')
@if($composer)
@run('get_composer')
su www -s /bin/bash -c '/www/server/php/81/bin/php composer.phar install --optimize-autoloader --no-dev'
@endif
su www -s /bin/bash -c '/www/server/php/81/bin/php artisan config:cache'
su www -s /bin/bash -c '/www/server/php/81/bin/php artisan route:cache'
su www -s /bin/bash -c '/www/server/php/81/bin/php artisan view:cache'
@run('chown_www')
@endtask
注:在一个 @task 任务中,可以使用 @run 标签嵌套子任务,这个是文档里没有提到的。
快来评论一下吧!
发表评论