exolnet/laravel-envoy

基于Capistrano的Laravel Envoy自动化部署模板。

v1.18.1 2023-10-26 13:53 UTC

README

Latest Stable Version Software License Build Status Total Downloads

此存储库包含Laravel Envoy的自动化部署模板。部署流程基于Capistrano

安装

  1. 使用composer安装此包: composer require --dev exolnet/laravel-envoy:"^1.9"

  2. 在项目的根目录创建一个Envoy.blade.php文件,内容如下:@import('exolnet/laravel-envoy')

    对于典型的Laravel项目,你应该有一个类似以下内容的文件

    @import('exolnet/laravel-envoy')
    
    @task('deploy:publish')
        cd "{{ $releasePath }}"
    
        php artisan down
    
        php artisan config:cache
        php artisan event:cache
        php artisan route:cache
        php artisan view:cache
    
        php artisan storage:link
    
        php artisan migrate --force
    
        php artisan up
    @endtask
  3. 在Laravel项目的config/deploy.php中创建部署配置。此存储库中提供了一个示例配置文件,位于config/deploy.php

    对于典型的Laravel项目,你应该有一个类似以下内容的文件

    <?php
    
    return [
        'name' => 'example',
    
        'default' => 'production',
    
        'environments' => [
            'production' => [
                'ssh_host'       => 'example.com',
                'ssh_user'       => 'example',
                'deploy_path'    => '/srv/example',
                'repository_url' => 'git@github.com:example/example.git',
                'linked_files'   => ['.env'],
                'linked_dirs'    => ['storage/app', 'storage/framework', 'storage/logs'],
                'copied_dirs'    => ['node_modules', 'vendor'],
            ],
        ],
    ];
  4. 享受吧!

升级

请阅读UPGRADE-1.x了解升级到1.x版本的步骤。

用法

以下宏可用

  • vendor/bin/envoy run setup:在远程主机上设置目录结构和仓库
  • vendor/bin/envoy run deploy --commit=abcdef:部署提交abcdef到远程主机
  • vendor/bin/envoy run deploy:publish --current:在远程主机上运行当前版本的deploy:publish任务
  • vendor/bin/envoy run releases:列出远程主机上的可用版本
  • vendor/bin/envoy run rollback [--release=123456]:回滚到上一个版本或到指定的123456
  • vendor/bin/envoy run backups:列出远程主机上的现有备份

您也可以使用本地的Envoy命令

  • vendor/bin/envoy tasks:列出可用的任务和宏
  • vendor/bin/envoy ssh:连接到远程主机

注意,您也可以使用选项--env=foo与任何之前的命令结合使用,以连接到配置中定义的其他远程主机。

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT以获取详细信息。

安全

使用SSH时强制执行StrictHostKeyChecking。如果您的远程git仓库服务器不支持SSHFP/VerifyHostKeyDNS,您需要在远程主机上手动创建known_hosts文件。

如果您发现任何安全相关的问题,请通过电子邮件security@exolnet.com联系,而不是使用问题跟踪器。

致谢

许可证

此代码根据MIT许可证授权。有关更多信息,请参阅许可证文件