Files
zephyr/scripts/schemas/board-schema.yml
Torsten Rasmussen c2df4ca9cb scripts: improve yaml schema and board.yml validation for revisions
Make 'default' and 'revisions' fields optional for custom revisions.
When using custom revision format, then board author must create a
revision.cmake file for revision handling, in which case revisions
don't need to be specified in the board.yml file.

Therefore make 'default' and 'revisions' fields optional in the schema
and implement custom yaml validation which can validate that 'default'
and 'revisions' are specified for all other revision formats.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-03-01 14:17:08 +00:00

81 lines
1.8 KiB
YAML

# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023, Nordic Semiconductor ASA
## A pykwalify schema for basic validation of the structure of a
## board metadata YAML file.
##
# The board.yml file is a simple list of key value pairs containing board
# information like: name, vendor, socs, variants.
schema;variant-schema:
required: false
type: seq
sequence:
- type: map
mapping:
name:
required: true
type: str
cpucluster:
required: false
type: str
variants:
required: false
include: variant-schema
schema;board-schema:
type: map
mapping:
name:
required: true
type: str
desc: Name of the board
vendor:
required: false
type: str
desc: SoC family of the SoC on the board.
revision:
required: false
type: map
mapping:
format:
required: true
type: str
enum:
["major.minor.patch", "letter", "number", "custom"]
default:
required: false # This field is required when 'format' != 'custom'
type: str
exact:
required: false
type: bool
revisions:
required: false # This field is required when 'format' != 'custom'
type: seq
sequence:
- type: map
mapping:
name:
required: true
type: str
socs:
required: true
type: seq
sequence:
- type: map
mapping:
name:
required: true
type: str
variants:
include: variant-schema
type: map
mapping:
board:
include: board-schema
boards:
type: seq
sequence:
- include: board-schema