c0ntax / deployment-tasks

一个简单的包,用于处理部署前后的脚本执行

dev-master 2019-06-04 12:35 UTC

This package is auto-updated.

Last update: 2024-09-05 00:17:47 UTC


README

简介

这是一个简单的(框架无关)库,用于在部署时运行任务(且仅运行一次)。默认情况下,它设计为与Knp Gaufrette库一起工作,这样您就可以在任何位置持久化已运行的任务(理想情况下,如果项目可以访问,则为数据库)

安装

composer req c0ntax/deployment-tasks

嗯,就是这样

配置

配置很简单。您只需要将两个配置好的Gaufrette文件系统注入到TaskService中。它们是

  1. 存储任务的本地项目文件系统
  2. 任务内存的位置,用于跟踪已运行的任务
use C0ntax\DeploymentTasks\Service\TaskService;
use Gaufrette\Filesystem;
use C0ntax\DeploymentTasks\Gaufrette\Adapter\Local;
use Gaufrette\Adapter\DoctrineDbal;

$taskFilesystem = new Filesystem(new Local('/path/to/tasks'));
$memoryFilesystem = new Filesystem(new DoctrineDbal(...));

$taskService = new TaskService($taskFilesystem, $memoryFilesystem);

您还需要确保已设置任务目录。例如

/path
  /to
    /tasks
      /Pre
        /task1232198312.sh
        /task3210948323.sh
      /Post
        /tasks0298340932.sh

执行

一旦配置完成,您只需将上面定义的TaskService传递给RunnerService即可

use C0ntax\DeploymentTasks\Contracts\TaskServiceInterface;
use C0ntax\DeploymentTasks\Service\RunnerService;

$runnerService = new RunnerService($taskService);
// To run pre deployment tasks (i.e. the codebase has been build and staged, but is not yet live)
$runnerService->run(TaskServiceInterface::TASK_TYPE_PRE);

// To run post deployment tasks (i.e. the codebase is now live and taking requests)
$runnerService->run(TaskServiceInterface::TASK_TYPE_POST);