Skip to content

check-gitlab-ci fails to parse multi-document .gitlab-ci.yml #561

@p-rogalski

Description

@p-rogalski

GitLab recently added the spec:inputs CI/CD YAML keyword which makes use of multi-document YAML files. The following example is taken straight from their docs:

spec:
  inputs:
    job-stage:
      default: test
    environment:
      default: production
---
scan-website:
  stage: $[[ inputs.job-stage ]]
  script: ./scan-website $[[ inputs.environment ]]

However, check-jsonschema refuses to parse such a file and errors out:

> check-jsonschema.exe --verbose --schemafile https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json .\.gitlab-ci.yml
Several files failed to parse.
  FailedFileLoadError: Failed to parse .\.gitlab-ci.yml
    in "C:\Users\username\pipx\venvs\check-jsonschema\Lib\site-packages\check_jsonschema\instance_loader.py", line 50
    >>> data: t.Any = self._parsers.parse_data_with_path(

    caused by

    ComposerError: expected a single document in the stream
      in "<byte string>", line 2, column 1:
        spec:
        ^ (line: 2)
    but found another document
      in "<byte string>", line 10, column 1:
        ---
        ^ (line: 10)
      in "C:\Users\username\pipx\venvs\check-jsonschema\Lib\site-packages\check_jsonschema\parsers\__init__.py", line 102
      >>> return loadfunc(data)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions