Schema
The JSON schema file is available here.
Each property section is described as follows:
- Type: Type of the property. We use
Array<{item type}>for arrays,Map<{key type}, {value type}>for objects. - Required: Whether the property is required.
- Default: Default value of the property.
- Options: Available values of the property.
- Template: Whether the property is a template string. Only for
stringor types containing strings. - Description: Description of the property.
Project
concurrency
- Type:
integer - Required: no
- Default:
Number of available CPU cores - Description: Task concurrency. Valid only in a root project config.
yaml
concurrency: 4depends_on
- Type:
Array<DependsOnConfig> - Required: no
- Default:
[] - Description: Dependency tasks for all the project tasks.
yaml
depends_on:
- '#install'env
- Type:
Map<string, string> - Required: no
- Default:
{} - Template: yes
- Description: Environment variables for all the project tasks.
yaml
env:
TZ: Asia/Tokyoenv_files
- Type:
Array<string> - Required: no
- Default:
[] - Template: yes
- Description: Dotenv files for all the project tasks. In case of duplicated environment variables, the latter one takes precedence.
yaml
env_files:
- .env
- .env.localgantt_file
- Type:
string - Required: no
- Template: no
- Description: Gantt chart output file path. Valid only in a root project config.
yaml
gantt_file: gantt.svgincludes
- Type:
Array<string> - Required: no
- Default:
[] - Template: yes
- Description: Additional config files to be included.
yaml
includes:
- common-vars.yml
- common-tasks.ymllog
- Type:
LogConfig - Required: no
- Default:
{"file":null,"level":"info"} - Description: Log configuration. Valid only in a root project config.
yaml
log:
level: debug
file: "{{ root_dir }}/firepit.log"projects
- Type:
Map<string, string> - Required: no
- Default:
{} - Template: no
- Description: Child projects. Valid only in a root project config.
yaml
projects:
client: packages/client
server: packages/servershell
- Type:
ShellConfig - Required: no
- Default:
{"args":["-c"],"command":"bash"} - Description: Shell configuration for all the project tasks.
yaml
shell:
command: "bash"
args: ["-eux", "-c"]tasks
- Type:
Map<string, TaskConfig> - Required: no
- Default:
{} - Template: no
- Description: Task definitions.
ui
- Type:
UI - Required: no
- Default:
cui - Description: UI configuration. Valid only in a root project config.
yaml
ui: cuivars
- Type:
Map<string, any> - Required: no
- Default:
{} - Template: yes
- Description: Template variables for all the project tasks.
yaml
vars:
aws_account_id: 123456789012
aws_region: ap-northeast-1
ecr_registry: "{{ aws_account_id }}.dkr.ecr.{{ aws_region }}.amazonaws.com"working_dir
- Type:
string - Required: no
- Default:
. - Template: yes
- Description: Working directory for all the project tasks.
yaml
working_dir: srcDependsOnConfig
- Type:
string | DependsOnConfigStruct - Template: yes
DependsOnConfigStruct
cascade
- Type:
boolean - Required: no
- Default:
true - Description: Whether the task restarts if this dependency task restarts.
task
- Type:
string - Required: yes
- Template: yes
- Description: Dependency task name
vars
- Type:
Map<string, any> - Required: no
- Default:
{} - Template: yes
- Description: Variables to override the dependency task vars.
ExecProbeConfig
command
- Type:
string - Required: yes
- Template: yes
- Description: Command to check if the service is ready
env
- Type:
Map<string, string> - Required: no
- Default:
{} - Template: yes
- Description: Environment variables. Merged with the task
env.
env_files
- Type:
Array<string> - Required: no
- Default:
[] - Template: yes
- Description: Dotenv files. Merged with the task
env_files.
interval
- Type:
integer - Required: no
- Default:
5 - Description: Interval in seconds. The command will run interval seconds after the task is started, and then again interval seconds after each previous check completes.
retries
- Type:
integer - Required: no
- Default:
3 - Description: Number of consecutive readiness-check failures allowed before giving up.
shell
- Type:
ShellConfig - Required: no
- Description: Shell configuration
start_period
- Type:
integer - Required: no
- Default:
0 - Description: Initialization period in seconds. Probe failure during that period will not be counted towards the maximum number of retries.
timeout
- Type:
integer - Required: no
- Default:
5 - Description: Timeout in seconds
working_dir
- Type:
string - Required: no
- Template: yes
- Description: Working directory
HealthCheckConfig
- Type:
LogProbeConfig | ExecProbeConfig
LogConfig
file
- Type:
string - Required: no
- Template: no
- Description: Log file path.
level
- Type:
string - Required: no
- Default:
info - Template: no
- Description: Log level. Valid values: error, warn, info, debug, trace
LogProbeConfig
log
- Type:
string - Required: yes
- Template: yes
- Description: Log regex pattern to determine the task service is ready
timeout
- Type:
integer - Required: no
- Default:
20 - Description: Timeout in seconds
Restart
- Type:
string - Options:
always,on-failure,never - Template: no
ServiceConfig
- Type:
boolean | ServiceConfigStruct
ServiceConfigStruct
healthcheck
- Type:
HealthCheckConfig - Required: no
- Description: Readiness probe configuration
restart
- Type:
Restart - Required: no
- Default:
never - Description: Restart policy
ShellConfig
args
- Type:
Array<string> - Required: no
- Default:
["-c"] - Template: no
- Description: Arguments of the shell command.
command
- Type:
string - Required: no
- Default:
bash - Template: no
- Description: Shell command.
TaskConfig
command
- Type:
string - Required: no
- Template: yes
- Description: Command to run
depends_on
- Type:
Array<DependsOnConfig> - Required: no
- Default:
[] - Description: Dependency tasks
description
- Type:
string - Required: no
- Template: no
- Description: Description
env
- Type:
Map<string, string> - Required: no
- Default:
{} - Template: yes
- Description: Environment variables. Merged with the project
env.
env_files
- Type:
Array<string> - Required: no
- Default:
[] - Template: yes
- Description: Dotenv files. Merged with the project
env_files.
inputs
- Type:
Array<string> - Required: no
- Default:
[] - Template: no
- Description: Inputs file glob patterns
label
- Type:
string - Required: no
- Template: yes
- Description: Label to display instead of the task name.
outputs
- Type:
Array<string> - Required: no
- Default:
[] - Template: no
- Description: Output file glob patterns
service
- Type:
ServiceConfig - Required: no
- Description: Service configurations
shell
- Type:
ShellConfig - Required: no
- Description: Shell configuration
vars
- Type:
Map<string, any> - Required: no
- Default:
{} - Template: yes
- Description: Template variables. Merged with the project
vars. Can be used atlabel,command,working_dir,env,env_files,depends_on,depends_on.{task, vars},service.healthcheck.logandservice.healthcheck.exec.{command, working_dir, env, env_files}
working_dir
- Type:
string - Required: no
- Template: yes
- Description: Working directory
yaml
working_dir: distUI
- Type:
string - Options:
cui,tui - Template: no
