diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2015-07-27 15:18:35 +0100 |
---|---|---|
committer | Baserock Gerrit <gerrit@baserock.org> | 2015-08-25 15:02:17 +0000 |
commit | bd34dceed26ec212dbe265d80a32d9c4c68bcbc7 (patch) | |
tree | e4a62ecdad4625d85f84d250ad9bab1861c67628 /schemas | |
parent | 6c2672269dac107fd7f299fe7439dd967b4653d7 (diff) | |
download | infrastructure-bd34dceed26ec212dbe265d80a32d9c4c68bcbc7.tar.gz |
Add migration and schema for definitions version 7
Version 7 of the schema adds a new file called DEFAULTS. I thought the
best way to describe the layout of this file was to add a JSON-Schema
description of it, and I propose keeping the canonical version of it
in this Git repository in the schemas/ subdirectory.
Change-Id: I18b6b997ba4e9f34028b98ccf682bdf56e507cec
Diffstat (limited to 'schemas')
-rw-r--r-- | schemas/defaults.json-schema | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/schemas/defaults.json-schema b/schemas/defaults.json-schema new file mode 100644 index 00000000..2f713425 --- /dev/null +++ b/schemas/defaults.json-schema @@ -0,0 +1,66 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/defaults.json-schema + +description: | + This is a JSON-Schema description of the DEFAULTS file specified in the + Baserock definitions format. DEFAULTS is a YAML file that contains global + defaults for a set of Baserock definitions. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions YAML serialisation format is the recommended way of + representing Baserock definitions on disk. The actual data model is described + separately. See <https://wiki.baserock.org/definitions> for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + command-sequence: + type: array + items: {type: string} + + build-system: + type: object + additionalProperties: false + properties: + build-commands: {$ref: '#/definitions/command-sequence'} + configure-commands: {$ref: '#/definitions/command-sequence'} + install-commands: {$ref: '#/definitions/command-sequence'} + strip-commands: {$ref: '#/definitions/command-sequence'} + + split-rules: + type: array + items: + type: object + + required: [artifact, include] + additionalProperties: false + + properties: + artifact: {type: string} + include: + type: array + items: + type: string + format: regex + +type: object +additionalProperties: false + +properties: + # Predefined build systems. + build-systems: + type: object + patternProperties: + ^.*$: {$ref: '#/definitions/build-system'} + + # Predefined artifact splitting rules. + split-rules: + type: object + additionalProperties: false + properties: + chunk: {$ref: '#/definitions/split-rules'} + stratum: {$ref: '#/definitions/split-rules'} |