woodpecker/pipeline/schema/schema.json
Zav Shotan 81dcdea2be
Add support for steps to be a list (instead of dict) (#826)
- Support for pipeline/containers as list
- Support for container name in logs (step.Name)

Co-authored-by: Zav Shotan <zshotan@bloomberg.net>
Co-authored-by: 6543 <6543@obermui.de>
2022-06-13 23:13:09 +02:00

348 lines
12 KiB
JSON

{
"title": "Woodpecker CI configuration file",
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://woodpecker-ci.org/schema/woodpecker.json",
"description": "Schema of a Woodpecker pipeline file. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax",
"type": "object",
"required": ["pipeline"],
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"format": "uri"
},
"clone": { "$ref": "#/definitions/clone" },
"branches": { "$ref": "#/definitions/branches" },
"pipeline": { "$ref": "#/definitions/pipeline" },
"services": { "$ref": "#/definitions/services" },
"workspace": { "$ref": "#/definitions/workspace" },
"matrix": { "$ref": "#/definitions/matrix" },
"platform": { "$ref": "#/definitions/platform" },
"labels": { "$ref": "#/definitions/labels" },
"skip_clone": { "type": "boolean" },
"depends_on": {
"type": "array",
"minLength": 1,
"items": { "type": "string" }
},
"runs_on": {
"type": "array",
"minLength": 1,
"items": { "type": "string" }
}
},
"definitions": {
"clone": {
"description": "Configures the clone step. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#clone",
"type": "object",
"additionalProperties": false,
"properties": {
"git": {
"type": "object",
"properties": {
"image": {
"type": "string"
}
}
}
}
},
"branches": {
"description": "Only include commits based on their target branch. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#branches",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minProperties": 1
},
{
"type": "string"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"exclude": {
"oneOf": [
{
"type": "array",
"items": { "type": "string" },
"minLength": 1
},
{ "type": "string" }
]
},
"include": {
"oneOf": [
{
"type": "array",
"items": { "type": "string" },
"minLength": 1
},
{ "type": "string" }
]
}
}
}
]
},
"pipeline": {
"description": "The pipeline section defines a list of steps which will be executed serially, in the order in which they are defined. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax",
"oneOf": [
{ "type": "object", "additionalProperties": { "$ref": "#/definitions/step" }, "minProperties": 1 },
{ "type": "array", "items": { "$ref": "#/definitions/step" }, "minLength": 1 }
]
},
"step": {
"description": "Every step of your pipeline executes arbitrary commands inside a specified docker container. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#steps",
"type": "object",
"additionalProperties": false,
"required": ["image"],
"properties": {
"image": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#step-image",
"type": "string"
},
"pull": {
"description": "Always pull the latest image on pipeline execution Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#step-image",
"type": "boolean"
},
"commands": {
"description": "Commands of every pipeline step are executed serially as if you would enter them into your local shell. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#step-commands",
"oneOf": [
{
"type": "array",
"items": { "type": "string" },
"minLength": 1
},
{ "type": "string" }
]
},
"environment": {
"description": "Pass environment variables to a pipeline step. Read more: https://woodpecker-ci.org/docs/usage/environment",
"oneOf": [
{
"type": "array",
"items": { "type": "string" },
"minLength": 1
},
{
"type": "object",
"additionalProperties": {
"type": ["boolean", "string", "number"]
}
}
]
},
"secrets": {
"description": "Pass secrets to a pipeline step at runtime. Read more: https://woodpecker-ci.org/docs/usage/secrets",
"type": "array",
"items": {
"oneOf": [
{ "type": "string" },
{
"type": "object",
"required": ["source", "target"],
"properties": {
"source": { "type": "string" },
"target": { "type": "string" }
}
}
]
},
"minLength": 1
},
"when": {
"$ref": "#/definitions/step_when"
},
"group": {
"description": "Execute multiple steps with the same group key in parallel. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#step-group---parallel-execution",
"type": "string"
},
"volumes": {
"description": "Mount files or folders from the host machine into your step container. Read more: https://woodpecker-ci.org/docs/usage/volumes",
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" }, "minLength": 1 }
]
},
"detach": {
"description": "Detach a step to run in background until pipeline finishes. Read more: https://woodpecker-ci.org/docs/usage/services#detachment",
"type": "boolean"
},
"settings": {
"description": "Change the settings of your plugin. Read more: https://woodpecker-ci.org/docs/usage/plugins/plugins",
"type": "object",
"additionalProperties": {
"type": ["boolean", "string", "number", "array", "object"]
}
}
}
},
"step_when": {
"description": "Steps can be skipped based on conditions. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#step-when---conditional-execution",
"type": "object",
"additionalProperties": false,
"properties": {
"repo": {
"description": "Execute a step only on a specific repository. Read more: https://woodpecker-ci.org/docs/usage/conditional-execution#repo",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minLength": 1
},
{ "type": "string" }
]
},
"branch": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#branch",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minLength": 1
},
{ "type": "string" }
]
},
"event": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#event",
"oneOf": [
{
"type": "array",
"items": {
"enum": ["push", "pull_request", "tag", "deployment"]
},
"minLength": 1
},
{
"enum": ["push", "pull_request", "tag", "deployment"]
}
]
},
"tag": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#tag",
"type": "string"
},
"status": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#status",
"type": "array",
"items": {
"enum": ["success", "failure"]
}
},
"platform": {
"description": "Execute a step only on a specific platform. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#platform",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minLength": 1
},
{ "type": "string" }
]
},
"environment": {
"description": "Execute a step only for a specific environment. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#environment",
"type": "string"
},
"matrix": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#matrix",
"type": "object",
"additionalProperties": {
"type": ["boolean", "string", "number"]
}
},
"instance": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#instance",
"type": "string"
},
"path": {
"description": "Execute a step only on commit with certain files added/removed/modified. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#environment",
"oneOf": [
{ "type": "string" },
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {
"type": "string"
}
},
"exclude": {
"type": "array",
"items": {
"type": "string"
}
},
"ignore_message": {
"type": "string"
}
},
"additionalProperties": false
}
]
}
}
},
"services": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/services",
"type": "object",
"additionalProperties": true
},
"workspace": {
"description": "TODO Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#workspace",
"type": "object",
"additionalProperties": true
},
"matrix": {
"description": "Execute pipeline for each matrix combination. Read more: https://woodpecker-ci.org/docs/usage/matrix-pipelines",
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {
"type": "object"
},
"minLength": 1
}
},
"additionalProperties": {
"type": "array",
"items": {
"type": ["boolean", "string", "number"]
},
"minLength": 1
}
},
"platform": {
"description": "Configures the platform the pipeline will be executed on. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#platform",
"type": "string",
"additionalProperties": false
},
"labels": {
"description": "Configures the labels used for the agent selection. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#clone",
"type": "object",
"additionalProperties": {
"type": ["boolean", "string", "number"]
}
}
}
}