2021-09-27 00:38:15 +00:00
{
"title" : "Woodpecker CI configuration file" ,
"$schema" : "http://json-schema.org/draft-07/schema#" ,
2021-10-14 16:13:57 +00:00
"$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" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
2023-06-07 10:04:37 +00:00
"required" : [ "steps" ] ,
2021-09-27 00:38:15 +00:00
"additionalProperties" : false ,
"properties" : {
"$schema" : {
"type" : "string" ,
"format" : "uri"
} ,
2022-07-17 16:25:56 +00:00
"variables" : {
"description" : "Use yaml aliases to define variables. Read more: https://woodpecker-ci.org/docs/usage/advanced-yaml-syntax"
} ,
2021-09-27 00:38:15 +00:00
"clone" : { "$ref" : "#/definitions/clone" } ,
2022-10-10 10:49:30 +00:00
"skip_clone" : { "type" : "boolean" } ,
2021-09-27 00:38:15 +00:00
"branches" : { "$ref" : "#/definitions/branches" } ,
2022-10-10 10:49:30 +00:00
"when" : { "$ref" : "#/definitions/pipeline_when" } ,
2023-06-07 10:04:37 +00:00
"steps" : { "$ref" : "#/definitions/step_list" } ,
"pipeline" : { "$ref" : "#/definitions/step_list" , "description" : "depricated, use steps" } ,
2021-09-27 00:38:15 +00:00
"services" : { "$ref" : "#/definitions/services" } ,
"workspace" : { "$ref" : "#/definitions/workspace" } ,
"matrix" : { "$ref" : "#/definitions/matrix" } ,
2022-05-30 23:12:18 +00:00
"platform" : { "$ref" : "#/definitions/platform" } ,
"labels" : { "$ref" : "#/definitions/labels" } ,
2021-09-27 00:38:15 +00:00
"depends_on" : {
"type" : "array" ,
"minLength" : 1 ,
"items" : { "type" : "string" }
} ,
2022-06-10 03:44:26 +00:00
"runs_on" : {
2021-09-27 00:38:15 +00:00
"type" : "array" ,
"minLength" : 1 ,
"items" : { "type" : "string" }
}
} ,
"definitions" : {
"clone" : {
2021-10-14 16:13:57 +00:00
"description" : "Configures the clone step. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#clone" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
"additionalProperties" : false ,
"properties" : {
"git" : {
"type" : "object" ,
"properties" : {
"image" : {
"type" : "string"
}
}
}
}
} ,
"branches" : {
2021-10-14 16:13:57 +00:00
"description" : "Only include commits based on their target branch. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#branches" ,
2021-09-27 00:38:15 +00:00
"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" }
]
}
}
}
]
} ,
2023-06-07 10:04:37 +00:00
"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/pipeline-syntax" ,
2022-06-13 21:13:09 +00:00
"oneOf" : [
{ "type" : "object" , "additionalProperties" : { "$ref" : "#/definitions/step" } , "minProperties" : 1 } ,
{ "type" : "array" , "items" : { "$ref" : "#/definitions/step" } , "minLength" : 1 }
]
2021-09-27 00:38:15 +00:00
} ,
2022-09-26 07:27:20 +00:00
"pipeline_when" : {
2022-10-10 10:49:30 +00:00
"description" : "Whole pipelines can be skipped based on conditions. Read more: https://woodpecker-ci.org/docs/next/usage/pipeline-syntax#when---global-pipeline-conditions" ,
2022-09-26 07:27:20 +00:00
"oneOf" : [
{
"type" : "array" ,
"minLength" : 1 ,
"items" : { "$ref" : "#/definitions/pipeline_when_condition" }
} ,
{
"$ref" : "#/definitions/pipeline_when_condition"
}
]
} ,
"pipeline_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/pipeline-syntax#repo" ,
"$ref" : "#/definitions/constraint_list"
} ,
"branch" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#branch" ,
"$ref" : "#/definitions/constraint_list"
} ,
"event" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#event" ,
"default" : [ ] ,
"oneOf" : [
{
"type" : "array" ,
"minLength" : 1 ,
"items" : { "$ref" : "#/definitions/event_enum" }
} ,
{
"$ref" : "#/definitions/event_enum"
}
]
} ,
2023-06-09 10:43:12 +00:00
"ref" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#ref" ,
2022-09-26 07:27:20 +00:00
"type" : "string"
} ,
"cron" : {
"description" : "filter cron by title. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#cron" ,
"$ref" : "#/definitions/constraint_list"
} ,
"platform" : {
"description" : "Execute a step only on a specific platform. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#platform" ,
"$ref" : "#/definitions/constraint_list"
} ,
"environment" : {
"description" : "Execute a step only for a specific environment. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#environment" ,
"$ref" : "#/definitions/constraint_list"
} ,
"instance" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-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/pipeline-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"
}
} ,
"additionalProperties" : false
}
]
2022-10-05 23:49:23 +00:00
} ,
"evaluate" : {
"description" : "Execute a step only if the expression evaluates to true. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#evaluate" ,
"type" : "string"
2022-09-26 07:27:20 +00:00
}
}
} ,
2021-09-27 00:38:15 +00:00
"step" : {
2021-10-14 16:13:57 +00:00
"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" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
2021-12-04 15:44:18 +00:00
"additionalProperties" : false ,
2021-09-27 00:38:15 +00:00
"required" : [ "image" ] ,
"properties" : {
"image" : {
2022-07-19 13:01:36 +00:00
"$ref" : "#/definitions/step_image"
2021-09-27 00:38:15 +00:00
} ,
"pull" : {
2022-07-19 13:01:36 +00:00
"$ref" : "#/definitions/step_pull"
2021-09-27 00:38:15 +00:00
} ,
"commands" : {
2022-07-19 13:01:36 +00:00
"$ref" : "#/definitions/step_commands"
2021-09-27 00:38:15 +00:00
} ,
"environment" : {
2022-07-19 13:01:36 +00:00
"$ref" : "#/definitions/step_environment"
2021-09-27 00:38:15 +00:00
} ,
2022-10-24 14:31:06 +00:00
"directory" : {
"$ref" : "#/definitions/step_directory"
} ,
2021-09-27 00:38:15 +00:00
"secrets" : {
2022-07-19 13:01:36 +00:00
"$ref" : "#/definitions/step_secrets"
} ,
"settings" : {
"$ref" : "#/definitions/step_settings"
2021-09-27 00:38:15 +00:00
} ,
"when" : {
"$ref" : "#/definitions/step_when"
} ,
2022-07-19 13:01:36 +00:00
"volumes" : {
"$ref" : "#/definitions/step_volumes"
} ,
2021-09-27 00:38:15 +00:00
"group" : {
2021-10-14 16:13:57 +00:00
"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" ,
2021-09-27 00:38:15 +00:00
"type" : "string"
} ,
2021-12-04 15:44:18 +00:00
"detach" : {
"description" : "Detach a step to run in background until pipeline finishes. Read more: https://woodpecker-ci.org/docs/usage/services#detachment" ,
"type" : "boolean"
2022-11-15 18:47:27 +00:00
} ,
"failure" : {
"description" : "How to handle the failure of this step. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#failure" ,
"type" : "string" ,
"enum" : [ "fail" , "ignore" ] ,
"default" : "fail"
2023-06-03 22:50:08 +00:00
} ,
"backend_options" : {
"$ref" : "#/definitions/step_backend_options"
2021-09-27 00:38:15 +00:00
}
}
} ,
"step_when" : {
2022-07-19 13:01:36 +00:00
"description" : "Steps can be skipped based on conditions. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#when---conditional-execution" ,
2022-08-14 17:32:49 +00:00
"oneOf" : [
{
"type" : "array" ,
"minLength" : 1 ,
"items" : { "$ref" : "#/definitions/step_when_condition" }
} ,
{
"$ref" : "#/definitions/step_when_condition"
}
]
} ,
"step_when_condition" : {
2021-09-27 00:38:15 +00:00
"type" : "object" ,
"additionalProperties" : false ,
"properties" : {
2021-12-30 01:30:08 +00:00
"repo" : {
2022-07-19 13:01:36 +00:00
"description" : "Execute a step only on a specific repository. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#repo" ,
2022-08-31 22:36:32 +00:00
"$ref" : "#/definitions/constraint_list"
2021-12-30 01:30:08 +00:00
} ,
2021-09-27 00:38:15 +00:00
"branch" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#branch" ,
2022-08-31 22:36:32 +00:00
"$ref" : "#/definitions/constraint_list"
2021-09-27 00:38:15 +00:00
} ,
"event" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#event" ,
2022-09-26 07:27:20 +00:00
"default" : [ "push" , "pull_request" , "tag" , "deployment" ] ,
2021-09-27 00:38:15 +00:00
"oneOf" : [
{
"type" : "array" ,
2022-08-29 22:36:37 +00:00
"minLength" : 1 ,
"items" : { "$ref" : "#/definitions/event_enum" }
2021-09-27 00:38:15 +00:00
} ,
{
2022-08-29 22:36:37 +00:00
"$ref" : "#/definitions/event_enum"
2021-09-27 00:38:15 +00:00
}
]
} ,
2023-06-09 10:43:12 +00:00
"ref" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#ref" ,
2021-09-27 00:38:15 +00:00
"type" : "string"
} ,
2022-08-31 22:36:32 +00:00
"cron" : {
"description" : "filter cron by title. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#cron" ,
"$ref" : "#/definitions/constraint_list"
} ,
2021-09-27 00:38:15 +00:00
"status" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#status" ,
2021-09-27 00:38:15 +00:00
"oneOf" : [
{
"type" : "array" ,
2022-08-31 22:36:32 +00:00
"minLength" : 1 ,
"items" : { "type" : "string" , "enum" : [ "success" , "failure" ] }
2021-09-27 00:38:15 +00:00
} ,
2022-08-31 22:36:32 +00:00
{
"type" : "string" ,
"enum" : [ "success" , "failure" ]
}
2021-09-27 00:38:15 +00:00
]
} ,
2022-08-31 22:36:32 +00:00
"platform" : {
"description" : "Execute a step only on a specific platform. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#platform" ,
"$ref" : "#/definitions/constraint_list"
} ,
2021-09-27 00:38:15 +00:00
"environment" : {
2021-10-14 16:13:57 +00:00
"description" : "Execute a step only for a specific environment. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#environment" ,
2022-08-31 22:36:32 +00:00
"$ref" : "#/definitions/constraint_list"
2021-09-27 00:38:15 +00:00
} ,
"matrix" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/matrix-pipelines" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
"additionalProperties" : {
"type" : [ "boolean" , "string" , "number" ]
}
} ,
"instance" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#instance" ,
2022-08-31 22:36:32 +00:00
"$ref" : "#/definitions/constraint_list"
2021-09-27 00:38:15 +00:00
} ,
"path" : {
2022-07-19 13:01:36 +00:00
"description" : "Execute a step only on commit with certain files added/removed/modified. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#path" ,
2021-09-27 00:38:15 +00:00
"oneOf" : [
{ "type" : "string" } ,
2022-01-29 13:26:00 +00:00
{
2022-05-30 23:12:18 +00:00
"type" : "array" ,
2022-01-29 13:26:00 +00:00
"items" : {
"type" : "string"
}
} ,
2021-09-27 00:38:15 +00:00
{
"type" : "object" ,
"properties" : {
"include" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"exclude" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"ignore_message" : {
"type" : "string"
}
} ,
"additionalProperties" : false
}
]
2022-10-05 23:49:23 +00:00
} ,
"evaluate" : {
"description" : "Execute a step only if the expression evaluates to true. Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#evaluate" ,
"type" : "string"
2021-09-27 00:38:15 +00:00
}
}
} ,
2022-08-29 22:36:37 +00:00
"event_enum" : {
2022-09-29 20:30:00 +00:00
"enum" : [ "push" , "pull_request" , "tag" , "deployment" , "cron" , "manual" ]
2022-08-31 22:36:32 +00:00
} ,
"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" }
}
]
}
}
}
]
2022-08-29 22:36:37 +00:00
} ,
2022-07-19 13:01:36 +00:00
"step_image" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#image" ,
"type" : "string"
} ,
"step_pull" : {
"description" : "Always pull the latest image on pipeline execution Read more: https://woodpecker-ci.org/docs/usage/pipeline-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/pipeline-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" ,
"oneOf" : [
{
"type" : "array" ,
"items" : { "type" : "string" } ,
"minLength" : 1
} ,
{
"type" : "object" ,
"additionalProperties" : {
"type" : [ "boolean" , "string" , "number" ]
}
}
]
} ,
"step_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
} ,
"step_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_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
} ,
2022-10-24 14:31:06 +00:00
"step_directory" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#directory" ,
"type" : "string"
} ,
2023-06-03 22:50:08 +00:00
"step_backend_options" : {
"description" : "Advanced options for the different agent backends" ,
"type" : "object" ,
"properties" : {
"kubernetes" : {
"$ref" : "#/definitions/step_backend_kubernetes_resources"
}
}
} ,
"step_backend_kubernetes" : {
"description" : "Advanced options for the kubernetes agent backends" ,
"type" : "object" ,
"properties" : {
"resources" : {
"$ref" : "#/definitions/step_backend_kubernetes_resources"
}
}
} ,
"step_backend_kubernetes_resources" : {
"description" : "Resources for the kubernetes backend. Read more: https://woodpecker-ci.org/docs/administration/backends/kubernetes" ,
"type" : "object" ,
"properties" : {
"requests" : {
"$ref" : "#/definitions/step_kubernetes_resources_object"
} ,
"limits" : {
"$ref" : "#/definitions/step_kubernetes_resources_object"
}
}
} ,
"step_kubernetes_resources_object" : {
"description" : "A list of kubernetes resource mappings" ,
"type" : "object" ,
"additionalProperties" : {
"type" : "string"
}
} ,
2023-06-12 14:00:59 +00:00
"step_backend_kubernetes_service_account" : {
"description" : "serviceAccountName to be use by job. Read more: https://woodpecker-ci.org/docs/administration/backends/kubernetes" ,
"type" : "object" ,
"properties" : {
"requests" : {
"$ref" : "#/definitions/step_kubernetes_service_account_object"
} ,
"limits" : {
"$ref" : "#/definitions/step_kubernetes_service_account_object"
}
}
} ,
"step_kubernetes_service_account_object" : {
"description" : "A list of kubernetes resource mappings" ,
"type" : "object" ,
"additionalProperties" : {
"type" : "string"
}
} ,
2021-09-27 00:38:15 +00:00
"services" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/services" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
2022-07-19 13:01:36 +00:00
"additionalProperties" : { "$ref" : "#/definitions/service" } ,
"minProperties" : 1
} ,
"service" : {
"description" : "Read more: https://woodpecker-ci.org/docs/usage/services" ,
"type" : "object" ,
"additionalProperties" : false ,
"minProperties" : 1 ,
"required" : [ "image" ] ,
"properties" : {
"image" : {
"$ref" : "#/definitions/step_image"
} ,
"pull" : {
"$ref" : "#/definitions/step_pull"
} ,
"commands" : {
"$ref" : "#/definitions/step_commands"
} ,
"environment" : {
"$ref" : "#/definitions/step_environment"
} ,
"secrets" : {
"$ref" : "#/definitions/step_secrets"
} ,
"settings" : {
"$ref" : "#/definitions/step_settings"
} ,
"when" : {
"$ref" : "#/definitions/step_when"
} ,
"volumes" : {
"$ref" : "#/definitions/step_volumes"
} ,
"ports" : {
"description" : "expose ports to which other steps can connect to" ,
"type" : "array" ,
2022-07-19 13:06:08 +00:00
"items" : {
2022-10-05 23:49:23 +00:00
"oneOf" : [ { "type" : "number" } , { "type" : "string" } ]
2022-07-19 13:06:08 +00:00
} ,
2022-07-19 13:01:36 +00:00
"minLength" : 1
}
}
2021-09-27 00:38:15 +00:00
} ,
"workspace" : {
2022-07-19 13:01:36 +00:00
"description" : "Read more: https://woodpecker-ci.org/docs/usage/pipeline-syntax#workspace" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
"additionalProperties" : true
} ,
"matrix" : {
2022-05-30 23:12:18 +00:00
"description" : "Execute pipeline for each matrix combination. Read more: https://woodpecker-ci.org/docs/usage/matrix-pipelines" ,
2021-09-27 00:38:15 +00:00
"type" : "object" ,
"properties" : {
"include" : {
"type" : "array" ,
"items" : {
"type" : "object"
} ,
"minLength" : 1
}
} ,
"additionalProperties" : {
"type" : "array" ,
"items" : {
"type" : [ "boolean" , "string" , "number" ]
} ,
"minLength" : 1
}
2022-05-30 23:12:18 +00:00
} ,
"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" ]
}
2021-09-27 00:38:15 +00:00
}
}
}