tomzo/gocd-yaml-config-plugin

Schema validation while importing pipeline configuration

sheroy opened this issue · 2 comments

Currently the yaml config plugin doesn't have a mechanism to validate the schema of the YAML pipeline configuration. There is no indication of errors in YAML configuration due to non-conformance to the GoCD pipeline schema.

Example:

pipelines:
  pipe1:
    group: simple
    materials:
      mygit: 
        git: <Some URL>
    stages:
      - build: # name of stage
          elastic_profile_id: demo-app
          jobs:
            build: # name of the job
              tasks:
               - exec: # indicates type of task
command: echo "hello world"

This configuration should have thrown an error because the elastic_profile_id element is in the wrong location. Currently, there is no error or warning displayed anywhere to indicate something was misconfigured.

\cc: @tomzo @marques-work @arvindsv

Is there the configuration schema defined as JSON Schema?

I couldn't find it (e.g. on http://schemastore.org/json/) but if there was one, it could be loaded to e.g. Visual Studio Code using https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml extension and provide a real-time validation while editing the YAML schema.

When I edit the YAML GoCD configuration in Visual Studio Code, it seems to know the available configuration keys, but it suggest to put any anywhere, i.e. even in incorrect places like suggested in this issue.

@mirogta There isn't a schema as far as I am aware.