---
# Using the 'yq' flavour available from Python's Pipy, not mikefarah's.
# No official docker images are available for 'yq' at the time of writing, falling back to the local command.


bootstrap:
  commands:
    yamllint:
      run: docker pull 'registry.gitlab.com/pipeline-components/yamllint:latest'
    yq:
      run: >-
        python3 -m 'venv' '.venv'
        && .venv/bin/pip install --require-virtualenv 'yq'

lint:
  commands:
    yaml: &yamllint
      glob: '*.{yaml,yml}'
      run: >-
        docker run --rm -v "$PWD:/code:ro" 'registry.gitlab.com/pipeline-components/yamllint:latest'
        yamllint {all_files}

validate:
  commands:
    yaml: &yq
      glob: '*.{yaml,yml}'
      run: >-
        echo '{all_files}'
        | xargs -t .venv/bin/yq '.'


pre-commit:
  commands:
    validate-yaml:
      <<: *yq
      run: >-
        .venv/bin/yq '.' {staged_files} > /dev/null
        && echo 'All YAML files are readable'
    lint-yaml:
      <<: *yamllint
      run: >-
        docker run --rm -v "$PWD:/code:ro" 'registry.gitlab.com/pipeline-components/yamllint:latest'
        yamllint {staged_files}
