stages:
  - test
  - build
  - deploy:images
  - deploy:pypi
  - deploy:docs

test:
  script:
    - apk add --no-cache make
    - make ci-install-alpine-requirements
    - pip install .
    - make ci-install-python-requirements
    - make test

build:images:
  script:
    - apk add --no-cache make
    - make ci-install-alpine-requirements
    - pip install .
    - make ci-build-images
  tags:
    - private
  stage: build

build:docs:
  script:
    - apk add --no-cache make
    - make ci-install-alpine-requirements
    - pip install -r requirements/docs.txt
    - make docs
  artifacts:
    paths:
      - docs/_build/html
  stage: build

build:pypi:
  script:
    - apk add --no-cache make
    - make ci-install-alpine-requirements
    - make ci-install-python-requirements
    - make package
  artifacts:
    paths:
      - dist/
  stage: build

deploy:images:
  script:
    - apk add --no-cache make
    - make ci-install-alpine-requirements
    - pip install .
    - make ci-push-images
  only:
    - tags
  tags:
    - private
  stage: deploy:images

deploy:pypi:
  script:
    - apk add --no-cache make
    - make ci-install-alpine-requirements
    - make ci-install-python-requirements
    - make ci-pypi
  dependencies:
    - build:pypi
  only:
    - tags
  tags:
    - private
  stage: deploy:pypi

deploy:docs:
  dependencies:
    - build:docs
  script:
    - rm -rf /var/www/docs.tutor.overhang.io
    - mv docs/_build/html/ /var/www/docs.tutor.overhang.io
  only:
    - tags
  tags:
    - private
  stage: deploy:docs
