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编写的任务。必须提供命名空间,使用.作为分隔符。
环境变量
环境变量可以在任务、目标和根级别指定,并按此顺序解析。