stages:
  - lint
  - test
  - deploy

lint:
  stage: lint
  image: openlp/debian
  before_script:
    - sh scripts/generate_resources.sh
  script:
    - flake8

test-debian:
  stage: test
  image: openlp/debian
  before_script:
    - sh scripts/generate_resources.sh
  script:
    - xvfb-run -s '-screen 0 1024x768x24' pytest-3 --color=no --disable-warnings --ignore tests/functional/openlp_plugins/presentations/test_pdfcontroller.py --cov openlp --cov-report term --cov-report html
  artifacts:
    paths:
      - htmlcov

test-ubuntu:
  stage: test
  image: openlp/ubuntu
  before_script:
    - sh scripts/generate_resources.sh
  script:
    - xvfb-run -s '-screen 0 1024x768x24' pytest-3 --color=no --disable-warnings --ignore tests/functional/openlp_plugins/presentations/test_pdfcontroller.py

test-fedora:
  stage: test
  image: openlp/fedora
  before_script:
    - sh scripts/generate_resources.sh
  script:
    - xvfb-run -s '-screen 0 1024x768x24' pytest-3 --color=no --disable-warnings --ignore tests/functional/openlp_plugins/presentations/test_pdfcontroller.py

test-arch:
  stage: test
  image: openlp/arch
  before_script:
    - sh scripts/generate_resources.sh
  script:
    - xvfb-run -s '-screen 0 1024x768x24' pytest --color=no --disable-warnings --ignore tests/functional/openlp_plugins/presentations/test_pdfcontroller.py

test-macos:
  stage: test
  tags:
    - macos
  before_script:
    - export PATH=/opt/local/bin:$PATH
    - sh scripts/generate_resources.sh
  script:
    - python3 -m pytest --color=no --disable-warnings
  only:
    - master@openlp/openlp

pages:
  stage: deploy
  script:
    - mv htmlcov public
  artifacts:
    paths:
      - public
    expire_in: 30 days
  dependencies:
    - test-debian
  only:
    - master@openlp/openlp
