elvanto / tapegun
v3.0.0
2024-05-07 02:30 UTC
Requires
- php: >=7.2.5
- symfony/console: ^5.4
- symfony/finder: ^5.4
This package is auto-updated.
Last update: 2024-09-10 06:34:37 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编写的任务。必须提供命名空间,使用.
作为分隔符。
环境变量
环境变量可以在任务、目标和根级别指定,并按此顺序解析。