erdmenchen/laravel-bitbucket-deploy

通过Bitbucket管道和envoyer部署您的Laravel应用程序

0.4-beta.1 2023-12-21 10:22 UTC

This package is auto-updated.

Last update: 2024-09-21 11:46:43 UTC


README

通过bitbucket pipelines和envoyer部署laravel应用程序。

重要
请确保您的项目(迁移!)按预期工作(测试!),因为在部署过程中没有备份机制!
不要只部署到生产环境,总是先在测试环境中测试版本!

先决条件

  • Bitbucket账户
  • 有可用的Bitbucket管道构建分钟(免费计划每月有50分钟)
  • 具有SSH访问权限的主机

安装

您可以通过运行以下命令轻松使用Composer安装此软件包

composer require erdmenchen/laravel-bitbucket-deploy

安装完成后,运行以下命令以安装所有必需的资产

php artisan vendor:publish

Bitbucket配置

为了在Bitbucket中获得构建和部署管道,您需要在您的Bitbucket存储库中执行以下步骤

  1. 启用管道
  2. 添加以下存储库变量: DEPLOY_HOSTDEPLOY_USER
  3. 创建一个新的SSH密钥,将您的宿主添加到已知的宿主并复制公钥到您的托管
  4. 创建以下部署环境和为每个设置变量 DEPLOY_PATH
    • 测试
    • 生产

主机配置

部署脚本需要在以下文件夹结构上运行,以便在Web托管上工作

  • 部署目标文件夹(例如cool_website_staging
    • .env(Laravel环境配置文件)
    • releases(每个部署将由脚本放在这里,每个部署都有一个唯一的文件夹)
    • storage(Laravel存储文件夹)
      • framework/sessions
      • framework/views
      • framework/cache

在每次部署期间,通过符号链接将.env文件和storage文件夹引用到当前构建文件夹。此外,在部署文件夹中创建或更新符号链接current,该链接指向最新的构建文件夹。

要始终让Web服务器指向最新的版本,只需创建一个指向current符号链接的符号链接即可(例如cool_website.com -> cool_website_staging/current/public。在部署期间无需编辑它。它始终指向最新的版本。

要求

此软件包有以下要求

  • PHP 7.3或更高版本
  • Laravel 6.0或更高版本

它是如何工作的

此软件包在您的Laravel项目中构建了Bitbucket管道脚本和Laravel Envoyer脚本。

当触发新的管道运行时(通过git提交或手动触发)会执行以下步骤的完整CI/CD(持续集成/持续交付)构建

  1. 获取源代码并安装PHP依赖项(构建PHP
  2. 运行phpunit并收集结果 - 在任何失败的测试时停止(测试PHP
  3. 通过npm安装javascript依赖项并构建UI资产(构建资产
  4. 部署到测试/生产 - 通过ssh连接到托管并推送构建(部署
    • 创建包含原始触发提交详细信息的清单文件
    • 创建指向 .envstorage 的符号链接
    • 检查 Laravel 健康状态(运行 php artisan --version
    • 通过更新 current 符号链接来激活构建
    • 优化、迁移和清理 Laravel 项目

最后一步(步骤 4)仅在从 developmaster 分支触发时执行。功能分支仅进行构建,不会进行部署。

许可证

GNU 通用公共许可证 v3.0。请参阅许可证文件获取更多信息。