---
yamllint:
  extends: .job
  stage: unit-tests
  variables:
    LANG: C.UTF-8
  script:
    - yamllint --strict .
  except: ['triggers', 'master']

vagrant-validate:
  extends: .job
  stage: unit-tests
  script:
    - curl -sL https://releases.hashicorp.com/vagrant/2.2.4/vagrant_2.2.4_x86_64.deb -o /tmp/vagrant_2.2.4_x86_64.deb
    - dpkg -i /tmp/vagrant_2.2.4_x86_64.deb
    - vagrant validate --ignore-provider
  except: ['triggers', 'master']

ansible-lint:
  extends: .job
  stage: unit-tests
  # lint every yml/yaml file that looks like it contains Ansible plays
  script: |-
    grep -Rl '^- hosts: \|^  hosts: ' --include \*.yml --include \*.yaml . | xargs -P 4 -n 25 ansible-lint -v
  except: ['triggers', 'master']

syntax-check:
  extends: .job
  stage: unit-tests
  variables:
    ANSIBLE_INVENTORY: inventory/local-tests.cfg
    ANSIBLE_REMOTE_USER: root
    ANSIBLE_BECOME: "true"
    ANSIBLE_BECOME_USER: root
    ANSIBLE_VERBOSITY: "3"
  script:
    - ansible-playbook --syntax-check cluster.yml
    - ansible-playbook --syntax-check upgrade-cluster.yml
    - ansible-playbook --syntax-check reset.yml
    - ansible-playbook --syntax-check extra_playbooks/upgrade-only-k8s.yml
  except: ['triggers', 'master']

tox-inventory-builder:
  stage: unit-tests
  extends: .job
  before_script:
    - ./tests/scripts/rebase.sh
    - apt-get update && apt-get install -y python3-pip
    - update-alternatives --install /usr/bin/python python /usr/bin/python3 10
    - python -m pip install -r tests/requirements.txt
  script:
    - pip3 install tox
    - cd contrib/inventory_builder && tox
  except: ['triggers', 'master']

markdownlint:
  stage: unit-tests
  image: node
  before_script:
    - npm install -g markdownlint-cli
  script:
    - markdownlint README.md docs --ignore docs/_sidebar.md
