sudo: required
services:
  - docker
language: python

git:
  depth: false

stages:
  - lint
  - test

jobs:
  include:
    - stage: lint
      name: commitlint
      script:
        - npm install -g @commitlint/cli @commitlint/config-conventional
        - 'echo "module.exports = {extends: [\"@commitlint/config-conventional\"]}" > commitlint.config.js'
        - npx commitlint --from=origin/master
    - stage: lint
      name: black_lint
      dist: bionic
      python: 3.8
      script:
        - pip3 install -U --pre black
        - black --check .
    - stage: test
      name: cli_func_v4
      dist: bionic
      python: 3.8
      script:
        - pip3 install tox
        - tox -e cli_func_v4
    - stage: test
      name: py_func_v4
      dist: bionic
      python: 3.8
      script:
        - pip3 install tox
        - tox -e py_func_v4
    - stage: test
      name: cli_func_nightly
      dist: bionic
      python: 3.8
      env: GITLAB_TAG=nightly
      script:
        - pip3 install tox
        - tox -e cli_func_v4
    - stage: test
      name: py_func_nightly
      dist: bionic
      python: 3.8
      env: GITLAB_TAG=nightly
      script:
        - pip3 install tox
        - tox -e py_func_v4
    - stage: test
      name: docs
      dist: bionic
      python: 3.8
      script:
        - pip3 install tox
        - tox -e docs
    - stage: test
      name: py36
      python: 3.6
      dist: bionic
      script:
        - pip3 install tox
        - tox -e py36
    - stage: test
      name: py37
      dist: bionic
      python: 3.7
      script:
        - pip3 install tox
        - tox -e py37
    - stage: test
      dist: bionic
      name: py38
      python: 3.8
      script:
        - pip3 install tox
        - tox -e py38
    - stage: test
      dist: bionic
      name: twine-check
      python: 3.8
      script:
        - pip3 install tox wheel
        - python3 setup.py sdist bdist_wheel
        - tox -e twine-check
    - stage: test
      dist: bionic
      name: coverage
      python: 3.8
      install:
        - pip3 install tox codecov
      script:
        - tox -e cover
      after_success:
        - codecov
  allow_failures:
    - env: GITLAB_TAG=nightly
