On Tuesday, 14 July 2020 10:57:41 CEST Ingo Klöcker wrote: > On Dienstag, 14. Juli 2020 10:20:33 CEST Kåre Särs wrote: > > Is there a way to verify that the yaml file is syntactically correct > > before > > pushing the change? > > There are loads of YAML linters/validators, online and offline. In fact, > this would be an opportunity to test-drive the awesome GitLab CI/CD. I > volunteer to implement this, if sysadmin is okay with this.
There's a bunch of different tools for YAML validation indeed. "kwalify" was one, I think. With a name like that .. :) Unfortunately, lots of the tools are also unmaintained, as I found out when I went looking recently. JSON-schema claims, though, to be maintained and applies to YAML and beyond (for those sensible cases where your YAML is a representation of JSON, and not the edge cases of what YAML can do). For Calamares, which is chock-full of simple YAML files, I ended up bodging a tool together in Python where most of the code ends up being validation logic, followed by one call to the Python library `jsonschema`. There's probably other ready-to-go tools like it. https://github.com/calamares/calamares/blob/calamares/ci/configvalidator.py A typical schema file for JSON-schema can be represented in YAML as well (because YAML is JSON, or something). Here's one, which has some enums, handles a list, and also contains string and boolean settings: https://github.com/calamares/calamares/blob/calamares/src/modules/welcome/ welcome.schema.yaml > Or do you mean "semantically correct", i.e. also checking for valid > projects? (From a JSON-schema perspective) You might periodically generate a schema type that checks the repository-re, for the simple case of |-separated full repository names. Personally I'd be more inclined to follow Albert's original question, and change the tool not to eat a RE but a YAML list-of-repo-names. [ade]
signature.asc
Description: This is a digitally signed message part.