hexide-digital/gitlab-deploy

v1.4.5 2024-03-18 09:26 UTC

README

Hexide digital Gitlab Deployer for Laravel

此包旨在优化和改进公司在Gitlab环境中的持续集成/持续部署(CI/CD)。

需求

此包版本需要PHP 8.1,并支持Laravel 9-11。

本地机器和远程服务器上必须安装SSH代理。

远程服务器必须使用GNU/Linux。

依赖关系

此包使用GitLab API创建CI/CD变量,由包graham-campbell/gitlab提供支持。

部署使用deployer/deployer

为了渲染美观的终端输出,使用nunomaduro/termwind

安装

添加依赖

您可以使用Composer安装此包。

composer require --dev hexide-digital/gitlab-deploy:^1.3

如果您使用的是Composer 2.4及以上版本,我们建议运行bump命令以锁定最新版本。

composer bump "hexide-digital/gitlab-deploy"

安装后,此包将自动注册其服务提供者。

用法

安装和发布文件

要发布部署和示例文件,请运行以下命令

php artisan deploy:install

要复制的文件示例位于此文件夹

配置和准备访问

打开.deploy/deploy-prepare.yml并填写所有必要的选项。

对于大多数情况,只需指定以下选项

  • 项目仓库访问令牌见提示
  • 项目id见提示
  • 对服务器的访问
  • 对数据库的访问

但是,对于每个阶段都可用以下选项

  • 仓库URL
  • phpcomposer的执行器路径
  • 对服务器的访问
  • 对数据库的访问
  • 对邮件主机的访问(但可以省略)

运行配置命令

基本启动

您可以通过运行以下命令开始配置特定阶段名称(例如,针对dev分支)的项目部署

php artisan deploy:gitlab dev

通常,阶段名称必须与git分支名称相同。

执行命令后

如果所有任务完全执行,要启用自动部署,请转到“设置”->“CI/CD”->“变量”,并将CI_ENABLED的值更改为1。之后,当您编辑配置了部署的分支时,Gitlab将自动运行CI/CD Pipeline。

仅打印启动

如果您想手动执行命令或仅为未来的部署做准备,在调用命令时设置--only-print选项。所有命令和示例都将写入位于.deploy/logs文件夹中的日志文件。剩下的只是复制并执行文件中的命令。

Gitlab提示

Gitlab API访问令牌

为了创建变量和其他部署选项,您需要授予对仓库设置的访问权限。此软件包使用Gitlab API方法,通过访问令牌进行。

我们建议创建一个个人访问令牌,并将其用于未来的部署配置。为此,请转到个人资料 -> 访问令牌并点击添加新令牌

profile-add-new-token.png

然后填写以下选项

  • 令牌名称 - 您用于识别令牌的名称,例如token_for_deployments
  • 过期日期 - 默认情况下,自动指定1个月,但可以设置更长的时间或删除此日期
  • 作用域 - 此软件包只需要api作用域,但您可以添加更多作用域

然后点击创建个人访问令牌

creating-personal-access-token.png

创建后,复制此令牌并保存在安全的地方,因为您将无法再次访问它,并在部署配置文件中设置。

created-personal-access-token.png

如果您不想使用和创建个人令牌,您可以创建仅对仓库有访问权限的项目令牌。

要获取访问令牌,请按照以下路径操作:设置 -> 访问令牌并点击添加新令牌

project-add-new-token.png

填写以下选项,如下所示

  • 令牌名称 - 任何名称,例如deploy_devdeploy_prod等。
  • 过期日期 - 建议设置为1-2天(这将足够)
  • 角色 - 选择维护者 - 这对于更改仓库设置的能力是必要的
  • 作用域 - 仅选择api,对于此软件包将足够

然后点击创建项目访问令牌以查看令牌,复制它并设置在部署配置文件中。

项目ID

打开仓库的主页,在顶部您可以看到仓库信息和项目ID。它也可以通过右侧的按钮进行复制。

project-id.png

我能雇佣你们吗?

是的!打个招呼:hello@hexide-digital.com 我们很高兴与您合作!我们完成的其他工作

关注我们

LinkedInFacebook上关注我们