summaryrefslogtreecommitdiff
path: root/schemas
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-07-27 15:18:35 +0100
committerBaserock Gerrit <gerrit@baserock.org>2015-08-25 15:02:17 +0000
commitbd34dceed26ec212dbe265d80a32d9c4c68bcbc7 (patch)
treee4a62ecdad4625d85f84d250ad9bab1861c67628 /schemas
parent6c2672269dac107fd7f299fe7439dd967b4653d7 (diff)
downloaddefinitions-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-schema66
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'}