Woodpecker CI · Schema

Woodpecker CI configuration file

Schema of a Woodpecker pipeline file. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax

CompanyContinuous IntegrationContinuous DeliveryDevOpsDeveloper ToolsOpen-SourcePipelinesSelf-HostedBuild AutomationContainers

Properties

Name Type Description
$schema string
variables object Use yaml aliases to define variables. Read more: https://woodpecker-ci.org/docs/usage/advanced-usage
clone object
skip_clone boolean
when object
steps object
services object
workspace object
matrix object
labels object
depends_on object List of workflow dependencies. Accepts strings or objects with name and optional fields. Read more: https://woodpecker-ci.org/docs/usage/workflows#flow-control
concurrency object Limit how many instances of this workflow may run at the same time. Read more: https://woodpecker-ci.org/docs/usage/workflows#concurrency
runs_on array Deprecated: use `when.status` instead. Read more: https://woodpecker-ci.org/docs/usage/workflows#flow-control
View JSON Schema on GitHub

JSON Schema

woodpecker-ci-pipeline-schema.json Raw ↑
{
  "title": "Woodpecker CI configuration file",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/woodpecker-ci/woodpecker/main/pipeline/frontend/yaml/linter/schema/schema.json",
  "description": "Schema of a Woodpecker pipeline file. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax",
  "type": "object",
  "required": ["steps"],
  "additionalProperties": false,
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri"
    },
    "variables": {
      "description": "Use yaml aliases to define variables. Read more: https://woodpecker-ci.org/docs/usage/advanced-usage"
    },
    "clone": {
      "$ref": "#/definitions/clone"
    },
    "skip_clone": {
      "type": "boolean"
    },
    "when": {
      "$ref": "#/definitions/workflow_when"
    },
    "steps": {
      "$ref": "#/definitions/step_list"
    },
    "services": {
      "$ref": "#/definitions/services"
    },
    "workspace": {
      "$ref": "#/definitions/workspace"
    },
    "matrix": {
      "$ref": "#/definitions/matrix"
    },
    "labels": {
      "$ref": "#/definitions/labels"
    },
    "depends_on": {
      "description": "List of workflow dependencies. Accepts strings or objects with name and optional fields. Read more: https://woodpecker-ci.org/docs/usage/workflows#flow-control",
      "$ref": "#/definitions/depends_on_list"
    },
    "concurrency": {
      "description": "Limit how many instances of this workflow may run at the same time. Read more: https://woodpecker-ci.org/docs/usage/workflows#concurrency",
      "$ref": "#/definitions/concurrency"
    },
    "runs_on": {
      "type": "array",
      "description": "Deprecated: use `when.status` instead. Read more: https://woodpecker-ci.org/docs/usage/workflows#flow-control",
      "minLength": 1,
      "items": {
        "type": "string"
      }
    }
  },
  "definitions": {
    "string_or_string_slice": {
      "oneOf": [
        {
          "type": "array",
          "minLength": 1,
          "items": {
            "type": "string"
          }
        },
        {
          "type": "string"
        }
      ]
    },
    "depends_on_item": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "required": ["name"],
          "additionalProperties": false,
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the dependency (step or workflow)."
            },
            "optional": {
              "type": "boolean",
              "default": false,
              "description": "If true, the dependency is silently dropped when not present in the pipeline."
            }
          }
        }
      ]
    },
    "depends_on_list": {
      "description": "A dependency or list of dependencies. Each item can be a string or an object with name and optional fields.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "minLength": 1,
          "items": {
            "$ref": "#/definitions/depends_on_item"
          }
        }
      ]
    },
    "concurrency": {
      "description": "Limit how many instances of this workflow may run at the same time. Provide an integer for the limit, or an object to also set a custom group.",
      "oneOf": [
        {
          "type": "integer",
          "minimum": 1
        },
        {
          "type": "object",
          "additionalProperties": false,
          "required": ["limit"],
          "properties": {
            "limit": {
              "type": "integer",
              "minimum": 1,
              "description": "Maximum number of workflows sharing the same group that run at once."
            },
            "group": {
              "type": "string",
              "description": "Identifier shared by workflows that are limited against each other. Defaults to the workflow name. Environment variables are substituted, e.g. `deploy-${CI_COMMIT_BRANCH}`."
            }
          }
        }
      ]
    },
    "clone": {
      "description": "Configures the clone step. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#clone",
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "git": {
              "type": "object",
              "properties": {
                "image": {
                  "$ref": "#/definitions/step_image"
                },
                "settings": {
                  "$ref": "#/definitions/clone_settings"
                }
              }
            }
          }
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/step"
          },
          "minLength": 1
        }
      ]
    },
    "clone_settings": {
      "description": "Change the settings of your clone plugin. Read more: https://woodpecker-ci.org/plugins/git-clone",
      "type": "object",
      "properties": {
        "depth": {
          "type": "number",
          "description": "If specified, uses git's --depth option to create a shallow clone with a limited number of commits, overwritten by partial"
        },
        "recursive": {
          "type": "boolean",
          "default": false,
          "description": "Clones submodules recursively"
        },
        "partial": {
          "type": "boolean",
          "description": "Only fetch the one commit and it's blob objects to resolve all files, overwrite depth with 1"
        },
        "lfs": {
          "type": "boolean",
          "default": true,
          "description": "Set this to false to disable retrieval of LFS files"
        },
        "tags": {
          "type": "boolean",
          "description": "Fetches tags when set to true, default is false if event is not tag else true"
        }
      },
      "additionalProperties": {
        "type": ["boolean", "string", "number", "array", "object"]
      }
    },
    "step_list": {
      "description": "The steps 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/workflow-syntax#steps",
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/step"
          },
          "minProperties": 1
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/step"
          },
          "minLength": 1
        }
      ]
    },
    "workflow_when": {
      "description": "Whole workflow can be skipped based on conditions. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#when---global-workflow-conditions",
      "oneOf": [
        {
          "type": "array",
          "minLength": 1,
          "items": {
            "$ref": "#/definitions/workflow_when_condition"
          }
        },
        {
          "$ref": "#/definitions/workflow_when_condition"
        }
      ]
    },
    "workflow_when_condition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "repo": {
          "description": "Execute a step only on a specific repository. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#repo",
          "$ref": "#/definitions/constraint_list"
        },
        "branch": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#branch",
          "$ref": "#/definitions/constraint_list"
        },
        "event": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#event",
          "default": [],
          "$ref": "#/definitions/event_constraint_list"
        },
        "ref": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#ref",
          "$ref": "#/definitions/constraint_list"
        },
        "cron": {
          "description": "filter cron by title. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#cron",
          "$ref": "#/definitions/constraint_list"
        },
        "status": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflows#flow-control",
          "oneOf": [
            {
              "type": "array",
              "minLength": 1,
              "items": {
                "type": "string",
                "enum": ["success", "failure"]
              }
            },
            {
              "type": "string",
              "enum": ["success", "failure"]
            }
          ]
        },
        "platform": {
          "description": "Execute a step only on a specific platform. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#platform",
          "$ref": "#/definitions/constraint_list"
        },
        "instance": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#instance",
          "$ref": "#/definitions/constraint_list"
        },
        "path": {
          "description": "Execute a step only on commit with certain files added/removed/modified. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#path",
          "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"
                },
                "on_empty": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "evaluate": {
          "description": "Execute a step only if the expression evaluates to true. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#evaluate",
          "type": "string"
        }
      }
    },
    "step": {
      "description": "A step of your workflow executes either arbitrary commands or uses a plugin. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#steps",
      "anyOf": [
        {
          "$ref": "#/definitions/commands_step"
        },
        {
          "$ref": "#/definitions/plugin_step"
        }
      ]
    },
    "commands_step": {
      "description": "Every step of your pipeline executes arbitrary commands inside a specified docker container. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#steps",
      "type": "object",
      "additionalProperties": false,
      "required": ["image"],
      "allOf": [
        {
          "if": {
            "properties": {
              "detach": {
                "const": true
              }
            }
          },
          "then": {},
          "else": {
            "anyOf": [
              {
                "required": ["commands"]
              },
              {
                "required": ["entrypoint"]
              }
            ]
          }
        }
      ],
      "properties": {
        "name": {
          "description": "The name of the step. Can be used if using the array style steps list.",
          "type": "string"
        },
        "image": {
          "$ref": "#/definitions/step_image"
        },
        "privileged": {
          "$ref": "#/definitions/step_privileged"
        },
        "pull": {
          "$ref": "#/definitions/step_pull"
        },
        "commands": {
          "$ref": "#/definitions/step_commands"
        },
        "environment": {
          "$ref": "#/definitions/step_environment"
        },
        "directory": {
          "$ref": "#/definitions/step_directory"
        },
        "when": {
          "$ref": "#/definitions/step_when"
        },
        "volumes": {
          "$ref": "#/definitions/step_volumes"
        },
        "depends_on": {
          "description": "Execute a step after another step has finished. Accepts strings or objects with name and optional fields.",
          "$ref": "#/definitions/depends_on_list"
        },
        "detach": {
          "description": "Detach a step to run in background until pipeline finishes. Read more: https://woodpecker-ci.org/docs/usage/services#detachment",
          "type": "boolean"
        },
        "failure": {
          "description": "How to handle the failure of this step. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#failure",
          "type": "string",
          "enum": ["fail", "ignore", "cancel"],
          "default": "fail"
        },
        "backend_options": {
          "$ref": "#/definitions/step_backend_options"
        },
        "entrypoint": {
          "$ref": "#/definitions/step_entrypoint"
        },
        "dns": {
          "description": "Change DNS server for step. Only allowed if 'Trusted Network' option is enabled in repo settings by an admin. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#dns",
          "$ref": "#/definitions/string_or_string_slice"
        },
        "dns_search": {
          "description": "Change DNS lookup domain for step. Only allowed if 'Trusted Network' option is enabled in repo settings by an admin. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#dns",
          "$ref": "#/definitions/string_or_string_slice"
        }
      }
    },
    "plugin_step": {
      "description": "Plugins let you execute predefined functions in a more secure context. Read more: https://woodpecker-ci.org/docs/usage/plugins/overview",
      "type": "object",
      "additionalProperties": false,
      "required": ["image"],
      "properties": {
        "name": {
          "description": "The name of the step. Can be used if using the array style steps list.",
          "type": "string"
        },
        "image": {
          "$ref": "#/definitions/step_image"
        },
        "privileged": {
          "$ref": "#/definitions/step_privileged"
        },
        "pull": {
          "$ref": "#/definitions/step_pull"
        },
        "directory": {
          "$ref": "#/definitions/step_directory"
        },
        "settings": {
          "$ref": "#/definitions/step_settings"
        },
        "when": {
          "$ref": "#/definitions/step_when"
        },
        "volumes": {
          "$ref": "#/definitions/step_volumes"
        },
        "depends_on": {
          "description": "Execute a step after another step has finished. Accepts strings or objects with name and optional fields.",
          "$ref": "#/definitions/depends_on_list"
        },
        "detach": {
          "description": "Detach a step to run in background until pipeline finishes. Read more: https://woodpecker-ci.org/docs/usage/services#detachment",
          "type": "boolean"
        },
        "failure": {
          "description": "How to handle the failure of this step. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#failure",
          "type": "string",
          "enum": ["fail", "ignore"],
          "default": "fail"
        },
        "backend_options": {
          "$ref": "#/definitions/step_backend_options"
        }
      }
    },
    "step_when": {
      "description": "Steps can be skipped based on conditions. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#when---conditional-execution",
      "oneOf": [
        {
          "type": "array",
          "minLength": 1,
          "items": {
            "$ref": "#/definitions/step_when_condition"
          }
        },
        {
          "$ref": "#/definitions/step_when_condition"
        }
      ]
    },
    "step_when_condition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "repo": {
          "description": "Execute a step only on a specific repository. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#repo",
          "$ref": "#/definitions/constraint_list"
        },
        "branch": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#branch",
          "$ref": "#/definitions/constraint_list"
        },
        "event": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#event",
          "$ref": "#/definitions/event_constraint_list"
        },
        "ref": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#ref",
          "$ref": "#/definitions/constraint_list"
        },
        "cron": {
          "description": "filter cron by title. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#cron",
          "$ref": "#/definitions/constraint_list"
        },
        "status": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#status",
          "oneOf": [
            {
              "type": "array",
              "minLength": 1,
              "items": {
                "type": "string",
                "enum": ["success", "failure"]
              }
            },
            {
              "type": "string",
              "enum": ["success", "failure"]
            }
          ]
        },
        "platform": {
          "description": "Execute a step only on a specific platform. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#platform",
          "$ref": "#/definitions/constraint_list"
        },
        "matrix": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/matrix-workflows",
          "type": "object",
          "additionalProperties": {
            "type": ["boolean", "string", "number"]
          }
        },
        "instance": {
          "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#instance",
          "$ref": "#/definitions/constraint_list"
        },
        "path": {
          "description": "Execute a step only on commit with certain files added/removed/modified. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#path",
          "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"
                },
                "on_empty": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "evaluate": {
          "description": "Execute a step only if the expression evaluates to true. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#evaluate",
          "type": "string"
        }
      }
    },
    "event_enum": {
      "enum": [
        "push",
        "pull_request",
        "pull_request_closed",
        "pull_request_metadata",
        "tag",
        "deployment",
        "cron",
        "manual",
        "release"
      ]
    },
    "event_constraint_list": {
      "oneOf": [
        {
          "$ref": "#/definitions/event_enum"
        },
        {
          "type": "array",
          "minLength": 1,
          "items": {
            "$ref": "#/definitions/event_enum"
          }
        }
      ]
    },
    "constraint_list": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "minLength": 1,
          "items": {
            "type": "string"
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "include": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "minLength": 1,
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "exclude": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "minLength": 1,
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        }
      ]
    },
    "step_image": {
      "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#image",
      "type": "string"
    },
    "step_privileged": {
      "description": "Run the step in privileged mode. Read more: https://woodpecker-ci.org/docs/next/usage/workflow-syntax#privileged-mode",
      "type": "boolean",
      "default": false
    },
    "step_pull": {
      "description": "Always pull the latest image on pipeline execution Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#image",
      "type": "boolean"
    },
    "step_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/workflow-syntax#commands",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minLength": 1
        },
        {
          "type": "string"
        }
      ]
    },
    "step_environment": {
      "description": "Pass environment variables to a pipeline step. Read more: https://woodpecker-ci.org/docs/usage/environment",
      "type": "object",
      "additionalProperties": {
        "type": ["boolean", "string", "number", "array", "object"]
      }
    },
    "step_entrypoint": {
      "description": "Defines container entrypoint.",
      "$ref": "#/definitions/string_or_string_slice"
    },
    "step_settings": {
      "description": "Change the settings of your plugin. Read more: https://woodpecker-ci.org/docs/usage/plugins/overview",
      "type": "object",
      "additionalProperties": {
        "type": ["boolean", "string", "number", "array", "object"]
      }
    },
    "step_volumes": {
      "description": "Mount files or folders from the host machine into your step container. Read more: https://woodpecker-ci.org/docs/usage/volumes",
      "type": "array",
      "items": {
        "type": "string"
      },
      "minLength": 1
    },
    "step_directory": {
      "description": "Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#directory",
      "type": "string"
    },
    "step_backend_options": {
      "description": "Advanced options for the different agent backends. Read more: https://woodpecker-ci.org/docs/usage/workflow-syntax#backend_options",
      "type": "object",
      "properties": {
        "docker": {
          "$ref": "#/definitions/step_backend_docker"
        },
        "kubernetes": {
          "$ref": "#/definitions/step_backend_kubernetes"
        }
      }
    },
    "step_backend_docker": {
      "description": "Advanced options for the Docker backend. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/docker#step-specific-configuration",
      "type": "object",
      "properties": {
        "user": {
          "description": "User or user:group used to run the container. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/docker#run-user",
          "type": "string"
        }
      }
    },
    "step_backend_kubernetes": {
      "description": "Advanced options for the Kubernetes backend. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#step-specific-configuration",
      "type": "object",
      "properties": {
        "resources": {
          "description": "CPU, memory, and other resource requests and limits. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#resources",
          "$ref": "#/definitions/step_backend_kubernetes_resources"
        },
        "labels": {
          "description": "Additional Kubernetes pod labels. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#annotations-and-labels",
          "type": "object",
          "additionalProperties": {
            "type": ["boolean", "string", "number"]
          }
        },
        "annotations": {
          "description": "Additional Kubernetes pod annotations. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#annotations-and-labels",
          "type": "object",
          "additionalProperties": {
            "type": ["boolean", "string", "number"]
          }
        },
        "tolerations": {
          "description": "The tolerations section defines a list of references to the native Kubernetes tolerations. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#tolerations",
          "type": "array",
          "items": {
            "$ref": "#/definitions/step_backend_kubernetes_toleration_object"
          },
          "minLength": 1
        },
        "securityContext": {
          "description": "Kubernetes pod and container security context. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "$ref": "#/definitions/step_backend_kubernetes_security_context"
        },
        "runtimeClassName": {
          "description": "Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#runtimeclassname",
          "type": "string"
        },
        "serviceAccountName": {
          "description": "Name of the Kubernetes service account mounted into the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#service-account",
          "type": "string"
        },
        "workspaceVolume": {
          "description": "Whether the default workspace volume is mounted into a service pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#workspace-volume",
          "type": "boolean"
        },
        "hostUsers": {
          "description": "Whether the pod uses the host user namespace. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#user-namespaces",
          "type": "boolean"
        },
        "nodeSelector": {
          "description": "Labels used to select the node on which the step is executed. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#node-selector",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "affinity": {
          "description": "Kubernetes affinity and anti-affinity rules for the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#affinity",
          "type": "object"
        },
        "secrets": {
          "description": "The secrets section defines a list of references to native Kubernetes secrets. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#step-specific-configuration",
          "type": "array",
          "items": {
            "$ref": "#/definitions/step_kubernetes_secret"
          },
          "minLength": 1
        }
      }
    },
    "step_backend_kubernetes_resources": {
      "description": "Resources for the kubernetes backend. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#step-specific-configuration",
      "type": "object",
      "properties": {
        "requests": {
          "$ref": "#/definitions/step_kubernetes_resources_object"
        },
        "limits": {
          "$ref": "#/definitions/step_kubernetes_resources_object"
        }
      }
    },
    "step_backend_kubernetes_security_context": {
      "description": "Pods / containers security context. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
      "type": "object",
      "properties": {
        "privileged": {
          "description": "Whether the container runs in privileged mode. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "boolean"
        },
        "runAsNonRoot": {
          "description": "Whether the pod must run as a non-root user. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "boolean"
        },
        "runAsUser": {
          "description": "User ID used to run the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "number"
        },
        "runAsGroup": {
          "description": "Group ID used to run the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "number"
        },
        "fsGroup": {
          "description": "Filesystem group ID for mounted volumes. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "number"
        },
        "fsGroupChangePolicy": {
          "description": "Policy for changing mounted-volume ownership. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "string"
        },
        "seccompProfile": {
          "description": "Seccomp profile for the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "$ref": "#/definitions/step_backend_kubernetes_secprofile"
        },
        "apparmorProfile": {
          "description": "AppArmor profile for the pod. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "$ref": "#/definitions/step_backend_kubernetes_secprofile"
        },
        "allowPrivilegeEscalation": {
          "description": "Whether the container can gain additional privileges. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "boolean"
        },
        "capabilities": {
          "description": "Linux capabilities removed from the container. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "$ref": "#/definitions/step_backend_kubernetes_capabilities"
        }
      }
    },
    "step_backend_kubernetes_capabilities": {
      "description": "Linux capabilities to remove from the container. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
      "type": "object",
      "properties": {
        "drop": {
          "description": "Linux capabilities to remove. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "step_backend_kubernetes_secprofile": {
      "description": "Pod or container security profile. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
      "type": "object",
      "properties": {
        "type": {
          "description": "Security profile type. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "string"
        },
        "localhostProfile": {
          "description": "Path to the local security profile. Read more: https://woodpecker-ci.org/docs/administration/configuration/backends/kubernetes#security-context",
          "type": "string"
        }
      }
    },
  

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/woodpecker-ci/refs/heads/main/json-schema/woodpecker-ci-pipeline-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/woodpecker-ci-pipeline"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.