55 lines
2.0 KiB
YAML
55 lines
2.0 KiB
YAML
name: Schema
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- schema/**
|
|
- docs/usage/configuration/config_documentation.md
|
|
|
|
jobs:
|
|
validate-schema:
|
|
name: Ensure Synapse config schema is valid
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
|
|
with:
|
|
python-version: "3.x"
|
|
- name: Install check-jsonschema
|
|
run: pip install check-jsonschema==0.33.0
|
|
|
|
- name: Validate meta schema
|
|
run: check-jsonschema --check-metaschema schema/v*/meta.schema.json
|
|
- name: Validate schema
|
|
run: |-
|
|
# Please bump on introduction of a new meta schema.
|
|
LATEST_META_SCHEMA_VERSION=v1
|
|
check-jsonschema \
|
|
--schemafile="schema/$LATEST_META_SCHEMA_VERSION/meta.schema.json" \
|
|
schema/synapse-config.schema.yaml
|
|
- name: Validate default config
|
|
# Populates the empty instance with default values and checks against the schema.
|
|
run: |-
|
|
echo "{}" | check-jsonschema \
|
|
--fill-defaults --schemafile=schema/synapse-config.schema.yaml -
|
|
|
|
check-doc-generation:
|
|
name: Ensure generated documentation is up-to-date
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
|
|
with:
|
|
python-version: "3.x"
|
|
- name: Install PyYAML
|
|
run: pip install PyYAML==6.0.2
|
|
|
|
- name: Regenerate config documentation
|
|
run: |
|
|
scripts-dev/gen_config_documentation.py \
|
|
schema/synapse-config.schema.yaml \
|
|
> docs/usage/configuration/config_documentation.md
|
|
- name: Error in case of any differences
|
|
# Errors if there are now any modified files (untracked files are ignored).
|
|
run: 'git diff || ! git status --porcelain=1 | grep "^ M"'
|