elvanto/tapegun

v3.0.0 2024-05-07 02:30 UTC

README

用PHP编写的简单构建系统。

特性

  • 支持以shell命令或PHP类编写的任务
  • 支持具有独立环境的多个目标构建
  • 包含Git、归档和模板化文本文件的捆绑任务

安装

首选的安装方法是composer;

composer require-dev elvanto/tapegun

使用方法

Tapegun通过一个JSON文件进行配置,该文件定义了构建项目所需的环境、目标和任务。基本结构如下。

{
  "name": "project-name",
  "env": {
      "foo": "bar",
      "staging": "/var/app/staging"
  },
  "targets": [
    {
      "name": "dev",
      "env": {
        "foo": "baz"
      }
    },
    {
      "name": "prod",
      "env": {
        "foo": "qux"
      }
    }
  ],
  "pre": [
    {
      "class": "Tapegun.Task.GitClone",
      "env": {
        "git:source": "https://github.com/company/project-name",
        "git:target": "{{staging}}"
      }
    }
  ],
  "build": [
    {
      "description": "Deploying project",
      "command": "project-deploy --foo={{foo}}"
    }
  ],
  "post": [
    {
      "description": "Cleaning staging directory",
      "command": "rm -rf /var/app/staging"
    }
  ]
}

配置

使用command属性执行shell命令。被{{和}}包围的环境变量将被其相应值替换。可以通过description属性提供自定义描述。如果将async设置为true,则任务将针对所有目标异步运行。

使用class属性执行用PHP编写的任务。必须提供命名空间,使用.作为分隔符。

环境变量

环境变量可以在任务、目标和根级别指定,并按此顺序解析。

许可证

MIT许可证