UNPKG

eslint-plugin-json-schema-validator

Version:
1 lines 12.5 kB
{"title":"JSON schema for CircleCI configuration files","$schema":"http://json-schema.org/draft-04/schema#","definitions":{"logical":{"oneOf":[{"type":["string","boolean","integer","number"]},{"type":"object","additionalProperties":false,"minProperties":1,"maxProperties":1,"properties":{"and":{"type":"array","items":{"$ref":"#/definitions/logical"}},"or":{"type":"array","items":{"$ref":"#/definitions/logical"}},"not":{"$ref":"#/definitions/logical"},"equal":{"type":"array"}}}]},"filter":{"type":"object","additionalProperties":false,"properties":{"only":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"ignore":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}},"orbs":{"type":"object","additionalProperties":{"oneOf":[{"type":"string","pattern":"^[a-z][a-z0-9_-]+/[a-z][a-z0-9_-]+@(\\d+|\\d+\\.\\d+|\\d+\\.\\d+\\.\\d+|volatile)$"},{"type":"object","properties":{"orbs":{"$ref":"#/definitions/orbs"},"commands":{"$ref":"#/definitions/commands"},"executors":{"$ref":"#/definitions/executors"},"jobs":{"$ref":"#/definitions/jobs"}}}]}},"commands":{"type":"object","additionalProperties":{"type":"object","required":["steps"],"properties":{"steps":{"type":"array","items":{"$ref":"#/definitions/step"}},"parameters":{"type":"object","patternProperties":{"^[a-z][a-z0-9_-]+$":{"oneOf":[{"type":"object","required":["type"],"properties":{"type":{"enum":["string"]},"description":{"type":"string"},"default":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"enum":["boolean"]},"description":{"type":"string"},"default":{"type":"boolean"}}},{"type":"object","required":["type"],"properties":{"type":{"enum":["integer"]},"description":{"type":"string"},"default":{"type":"integer"}}},{"type":"object","required":["type","enum"],"properties":{"type":{"enum":["enum"]},"enum":{"type":"array","minItems":1,"items":{"type":"string"}},"description":{"type":"string"},"default":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"enum":["executor"]},"description":{"type":"string"},"default":{"type":"string"}}},{"type":"object","required":["type"],"properties":{"type":{"enum":["steps"]},"description":{"type":"string"},"default":{"type":"array","items":{"$ref":"#/definitions/step"}}}},{"type":"object","required":["type"],"properties":{"type":{"enum":["env_var_name"]},"description":{"type":"string"},"default":{"type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9_-]+$"}}}]}}},"description":{"type":"string"}}}},"dockerExecutor":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["image"],"properties":{"image":{"type":"string"},"name":{"type":"string"},"entrypoint":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"command":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"user":{"type":"string"},"environment":{"type":"object","additionalProperties":{"type":["string","number"]}},"auth":{"type":"object","additionalProperties":false,"properties":{"username":{"type":"string"},"password":{"type":"string"}}},"aws_auth":{"type":"object","additionalProperties":false,"properties":{"aws_access_key_id":{"type":"string"},"aws_secret_access_key":{"type":"string"}}}}}},"machineExecutor":{"type":"object","required":["image"],"additionalProperties":false,"properties":{"image":{"type":"string","default":"ubuntu-1604:202004-01"},"docker_layer_caching":{"type":"boolean","default":"true"}}},"macosExecutor":{"type":"object","additionalProperties":false,"required":["xcode"],"properties":{"xcode":{"type":"string"}}},"executorChoice":{"oneOf":[{"type":"object","required":["docker"],"properties":{"docker":{"$ref":"#/definitions/dockerExecutor"}}},{"type":"object","required":["machine"],"properties":{"machine":{"$ref":"#/definitions/machineExecutor"}}},{"type":"object","required":["machine"],"properties":{"machine":{"type":"boolean"}}},{"type":"object","required":["macos"],"properties":{"macos":{"$ref":"#/definitions/macosExecutor"}}}]},"executors":{"type":"object","additionalProperties":{"type":"object","$ref":"#/definitions/executorChoice","properties":{"resource_class":{"type":"string","default":"medium","enum":["small","medium","medium+","large","xlarge","2xlarge","2xlarge+","gpu.nvidia.small","gpu.nvidia.medium","windows.gpu.nvidia.medium"]},"shell":{"type":"string"},"working_directory":{"type":"string"},"environment":{"type":"object","additionalProperties":{"type":["string","number"]}}}}},"builtinSteps":{"documentation":{"run":{},"checkout":{},"setup_remote_docker":{},"save_cache":{},"restore_cache":{},"deploy":{},"store_artifacts":{},"store_test_results":{},"persist_to_workspace":{},"attach_workspace":{},"add_ssh_keys":{},"when":{},"unless":{}},"configuration":{"run":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/run"}],"oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"required":["command"],"properties":{"command":{"type":"string"},"name":{"type":"string"},"shell":{"type":"string"},"environment":{"type":"object","additionalProperties":{"type":["string","number"]}},"background":{"default":false,"type":"boolean"},"working_directory":{"type":"string"},"no_output_timeout":{"type":"string","pattern":"\\d+(\\.\\d+)?[mhs]","default":"10m"},"when":{"enum":["always","on_success","on_fail"]}}}]},"checkout":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/checkout"}],"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"path":{"type":"string"}}},"setup_remote_docker":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/setup_remote_docker"}],"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"docker_layer_caching":{"type":"boolean","default":false},"version":{"enum":["20.10.2","19.03.14","19.03.13","19.03.12","19.03.8","18.09.3","17.09.0-ce"],"default":"19.03.13"}}},"save_cache":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/save_cache"}],"type":"object","additionalProperties":false,"required":["paths","key"],"properties":{"paths":{"type":"array","items":{"type":"string"}},"key":{"type":"string"},"name":{"type":"string"},"when":{"enum":["always","on_success","on_fail"]}}},"restore_cache":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/restore_cache"}],"oneOf":[{"type":"object","additionalProperties":false,"required":["key"],"properties":{"key":{"type":"string"},"name":{"type":"string"}}},{"type":"object","additionalProperties":false,"required":["keys"],"properties":{"name":{"type":"string"},"keys":{"type":"array","items":{"type":"string"}}}}]},"deploy":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/deploy"},{"$ref":"#/definitions/builtinSteps/configuration/run"}]},"store_artifacts":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/store_artifacts"}],"type":"object","additionalProperties":false,"required":["path"],"properties":{"name":{"type":"string"},"path":{"type":"string"},"destination":{"type":"string"}}},"store_test_results":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/store_test_results"}],"type":"object","additionalProperties":false,"required":["path"],"properties":{"name":{"type":"string"},"path":{"type":"string"}}},"persist_to_workspace":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/persist_to_workspace"}],"type":"object","additionalProperties":false,"required":["root","paths"],"properties":{"name":{"type":"string"},"root":{"type":"string"},"paths":{"type":"array","items":{"type":"string"}}}},"attach_workspace":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/attach_workspace"}],"type":"object","additionalProperties":false,"required":["at"],"properties":{"name":{"type":"string"},"at":{"type":"string"}}},"add_ssh_keys":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/add_ssh_keys"}],"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"fingerprints":{"type":"array","items":{"type":"string"}}}},"when":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/when"}],"type":"object","additionalProperties":false,"properties":{"condition":{"$ref":"#/definitions/logical"},"steps":{"type":"array","items":{"$ref":"#/definitions/step"}}},"required":["condition","steps"]},"unless":{"allOf":[{"$ref":"#/definitions/builtinSteps/documentation/unless"}],"type":"object","additionalProperties":false,"properties":{"condition":{"$ref":"#/definitions/logical"},"steps":{"type":"array","items":{"$ref":"#/definitions/step"}}},"required":["condition","steps"]}}},"step":{"anyOf":[{"$ref":"#/definitions/builtinSteps/documentation/checkout","enum":["checkout"]},{"$ref":"#/definitions/builtinSteps/documentation/setup_remote_docker","enum":["setup_remote_docker"]},{"$ref":"#/definitions/builtinSteps/documentation/add_ssh_keys","enum":["add_ssh_keys"]},{"type":"string","pattern":"^[a-z][a-z0-9_-]+$"},{"type":"string","pattern":"^[a-z][a-z0-9_-]+/[a-z][a-z0-9_-]+$"},{"type":"object","minProperties":1,"maxProperties":1,"properties":{"run":{"$ref":"#/definitions/builtinSteps/configuration/run"},"checkout":{"$ref":"#/definitions/builtinSteps/configuration/checkout"},"setup_remote_docker":{"$ref":"#/definitions/builtinSteps/configuration/setup_remote_docker"},"save_cache":{"$ref":"#/definitions/builtinSteps/configuration/save_cache"},"restore_cache":{"$ref":"#/definitions/builtinSteps/configuration/restore_cache"},"deploy":{"$ref":"#/definitions/builtinSteps/configuration/deploy"},"store_artifacts":{"$ref":"#/definitions/builtinSteps/configuration/store_artifacts"},"store_test_results":{"$ref":"#/definitions/builtinSteps/configuration/store_test_results"},"persist_to_workspace":{"$ref":"#/definitions/builtinSteps/configuration/persist_to_workspace"},"attach_workspace":{"$ref":"#/definitions/builtinSteps/configuration/attach_workspace"},"add_ssh_keys":{"$ref":"#/definitions/builtinSteps/configuration/add_ssh_keys"},"when":{"$ref":"#/definitions/builtinSteps/configuration/when"},"unless":{"$ref":"#/definitions/builtinSteps/configuration/unless"}},"patternProperties":{"^[a-z][a-z0-9_-]+$":{},"^[a-z][a-z0-9_-]+/[a-z][a-z0-9_-]+$":{}}}]},"jobRef":{"type":"object","additionalProperties":true,"properties":{"requires":{"type":"array","items":{"type":"string"}},"context":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"default":"org-global"},"type":{"enum":["approval"]},"filters":{"type":"object","additionalProperties":{"branches":{"$ref":"#/definitions/filter"},"tags":{"$ref":"#/definitions/filter"}}},"matrix":{"type":"object","additionalProperties":false,"required":["parameters"],"properties":{"parameters":{"type":"object","additionalProperties":{"type":"array"}},"exclude":{"type":"array","items":{"type":"object"}},"alias":{"type":"string"}}}}},"jobs":{"type":"object","additionalProperties":{"type":"object","oneOf":[{"$ref":"#/definitions/executorChoice"},{"type":"object","required":["executor"],"properties":{"executor":{"type":"string"}}},{"type":"object","required":["executor"],"properties":{"executor":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}],"required":["steps"],"properties":{"shell":{"type":"string"},"steps":{"type":"array","items":{"$ref":"#/definitions/step"}},"working_directory":{"type":"string","default":"~/project"},"parallelism":{"default":1,"oneOf":[{"type":"integer"},{"type":"string","pattern":"^<<.+\\..+>>$"}]},"environment":{"type":"object","additionalProperties":{"type":["string","number"]}},"branches":{"type":"object","additionalProperties":{"type":"string"}}}}}},"type":"object","required":["version"],"properties":{"version":{"default":2.1,"enum":[2,2.1]},"orbs":{"$ref":"#/definitions/orbs"},"commands":{"$ref":"#/definitions/commands"},"executors":{"$ref":"#/definitions/executors"},"jobs":{"$ref":"#/definitions/jobs"},"workflows":{"type":"object","properties":{"version":{"enum":[2]}},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"triggers":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"schedule":{"type":"object","properties":{"cron":{"type":"string"},"filters":{"type":"object","additionalProperties":false,"properties":{"branches":{"$ref":"#/definitions/filter"}}}}}}}},"jobs":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"type":"object","$ref":"#/definitions/jobRef"}}]}},"when":{"$ref":"#/definitions/logical"},"unless":{"$ref":"#/definitions/logical"}}}}}}