org.riotkit.rkd/yaml/v1 schema

Tip

Import this schema in your IDE for better static analysis of Makefiles written in YAML

YAML syntax marked with version org.riotkit.rkd/yaml/v1 is validated using following schema:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": ["version"],
    "properties": {
        "version": {
            "type": "string",
            "minLength": 5
        },
        "imports": {
            "type": "array",
            "minItems": 0,
            "items": {
                "$ref": "#/definitions/import"
            }
        },
        "tasks": {
            "type": "object",
            "minItems": 0,
            "additionalProperties": {
                "$ref": "#/definitions/task"
            }
        },
        "environment": {
            "type": "object",
            "minItems": 0
        },
        "env_files": {
            "type": "array"
        }
    },

    "definitions": {
        "task": {
            "type": "object",
            "properties": {
                "extends": {
                    "type": "string"
                },

                "description": {
                    "type": "string"
                },

                "arguments": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/task-argument"
                    },
                    "minItems": 0
                },

                "steps": {
                    "type": ["array", "string"],
                    "minItems": 0
                },

                "environment": {
                    "type": "object",
                    "minItems": 0
                },

                "env_files": {
                    "type": "array"
                },

                "execute": {
                    "type": "string"
                },

                "execute@without_parent": {
                    "type": "string"
                },

                "execute@after_parent": {
                    "type": "string"
                },

                "configure": {
                    "type": "string"
                },

                "configure@without_parent": {
                    "type": "string"
                },

                "configure@after_parent": {
                    "type": "string"
                },

                "inner_execute": {
                    "type": "string"
                },

                "inner_execute@without_parent": {
                    "type": "string"
                },

                "inner_execute@after_parent": {
                    "type": "string"
                }
            }
        },
        "task-argument": {
            "type": "object",
            "properties": {
                "help": {
                    "type": "string"
                },
                "required": {
                    "type": "boolean"
                },
                "action": {
                    "type": "string"
                },
                "metavar": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "nargs": {
                    "type": "string"
                },
                "default": {
                    "type": "string"
                },
                "const": {
                    "type": "string"
                },
                "choices": {
                    "type": "array"
                },
                "dest": {
                    "type": "string"
                }
            }
        },
        "import": {
            "type": "string"
        }
    }
}