jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
109 lines (108 loc) • 4.89 kB
JSON
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"required": ["name", "on", "jobs"],
"properties": {
"name": {
"type": "string"
},
"on": {
"type": "array",
"items": { "type": "string" }
},
"jobs": {
"type": "object",
"additionalProperties": false,
"required": ["build"],
"properties": {
"build": {
"type": "object",
"additionalProperties": false,
"required": ["runs-on", "env", "steps"],
"properties": {
"runs-on": {
"type": "string"
},
"env": {
"type": "object",
"additionalProperties": false,
"required": ["build-suite-dir"],
"properties": {
"build-suite-dir": {
"type": "string"
}
}
},
"steps": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": ["uses"],
"properties": {
"uses": {
"type": "string"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": ["uses", "with"],
"properties": {
"uses": {
"type": "string"
},
"with": {
"type": "object",
"additionalProperties": false,
"required": ["node-version"],
"properties": {
"node-version": {
"type": "string"
}
}
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": ["name", "run"],
"properties": {
"name": {
"type": "string"
},
"run": {
"type": "string"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": ["name", "run", "working-directory"],
"properties": {
"name": {
"type": "string"
},
"run": {
"type": "string"
},
"working-directory": {
"type": "string"
}
}
}
]
}
}
}
}
}
}
}
}