language: python
python: 3.8    # "3.8" also works
dist: focal

addons:
  apt:
    sources:
      - sourceline: ppa:ansible/ansible
    packages:
#      - python-pip    # @arky had used this starting in 2018
      - ansible-base    # Install latest ansible-base e.g. 2.10.6+, similar to https://github.com/iiab/iiab/blob/master/scripts/ansible
#      - python3-pymysql    # These 7-or-8 packages are not needed during this very rapid --syntax-check
#      - python3-psycopg2
#      - python3-passlib
#      - python3-pip
#      - python3-setuptools
      - python3-packaging    # To avoid warning "packaging Python module unavailable; unable to validate collection..."
#      - python3-venv
#      - virtualenv

install:
#  - scripts/ansible    # See #2105: fails to install latest Ansible (& ~4 Ansible Collections from collections.yml) due to Travis VM's disk layout/perms being different
#  - pip install ansible    # SLOW/OVERWEIGHT: installs Ansible 3.0.0+ with ~80 Ansible Collections
#  - pip install ansible-base    # ALSO WORKS e.g. if the above addons: / apt: section is commented out.  To install latest ansible-base e.g. 2.10.6+, similar to https://github.com/iiab/iiab/blob/master/scripts/ansible
  - ansible-galaxy collection install -r collections.yml    # Install ~4 Ansible Collections
  - "{ echo 'roles_path = ./roles/'; } >> ansible.cfg"    # Add correct roles_path to ansible.cfg, appending to https://github.com/iiab/iiab/blob/master/ansible.cfg
#  - "{ echo '[defaults]'; echo 'roles_path = ./roles/'; } >> ansible.cfg"    # 2021-02-24: suddenly no longer works, with the newer ansible-base install methods above (error arises due to '[defaults]' appearing twice)
#  - cat ansible.cfg    # UNCOMMENT TO VERIFY!
  - apt -a list ansible-base    # VERIFY ansible-base VERSIONS OFFERED BY apt

script:
  - ansible-playbook tests/test.yml -i tests/inventory --syntax-check
