jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
109 lines (108 loc) • 3.21 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"
}
}
}
]
}
}
}
}
}
}
}
}