# ===== DEFINE DEFAULT DOCKER IMAGE =====
# dockerhub image generated using docker/Dockerfile_simple
image: dtuwindenergy/topfarm2:latest


# ===== TEST TOPFARM =====
test_topfarm:  # name the job what we like
  stage:  # build, test, deploy defined by default [2]
    test
  script:
  - pip install --upgrade git+git://github.com/FUSED-Wind/FUSED-Wake@master
  - pip install -e .
  - py.test
  tags:  # only runners with this tag can do the job [3]
  - python

  
# ===== TEST TOPFARM =====
test_topfarm_pep8:  # name the job what we like
  stage:  # build, test, deploy defined by default [2]
    test
  script:
  - pip install --upgrade git+git://github.com/FUSED-Wind/FUSED-Wake@master
  - pip install -e .
  - pycodestyle --ignore=E501 --exclude="*Colonel*" topfarm
  tags:  # only runners with this tag can do the job [3]
  - python

# ===== TEST TOPFARM on Windows =====
test_topfarm_windows:  # name the job what we like
  variables:
    GIT_SUBMODULE_STRATEGY: normal
  stage:  # build, test, deploy defined by default [2]
    test
  script:  # runs on windows machine due to tag below
  - c:/Anaconda3/envs/pyTopfarm/scripts/pip install -e .
  - c:/Anaconda3/envs/pyTopfarm/python.exe -m pytest --cov-report term-missing:skip-covered --cov=topfarm --cov-config .coveragerc --ignore=topfarm/cost_models/fuga/Colonel
  tags:  # tag for shared runner on windows machine
  - CPAV_old_PC

# ===== BUILD DOCS AND PUSH TO PUBLIC WEBSITE =====
pages:  # "pages" is a job specifically for GitLab pages [1]
  stage:  # build, test, deploy defined by default [2]
    deploy
  script:  # use sphinx to build docs, move to public page
  - cd docs; make html
  - cd ../; mv docs/build/html public/
  artifacts:  # required for GitLab pages [1]
    paths:
    - public
  only:  # only run for these branches
  - master
  - test_docs
  tags:  # only runners with this tag can do the job [3]
  - python

# ===== BUILD WHEELS AND UPLOAD TO PYPI =====
pypi:
  stage:  
    deploy
  only:
    - tags
#    - master
  script:
    - python3 -m pip install -U setuptools wheel
    - python3 setup.py sdist bdist_wheel
    - python3 -m pip install -U twine
    # - twine upload --repository-url https://test.pypi.org/legacy/ dist/* -u $TWINE_USERNAME -p $TWINE_PASSWORD # for testing purposes
    - twine upload dist/* -u $TWINE_USERNAME -p $TWINE_PASSWORD
  tags:  
    - python


# [1] GitLab page: https://docs.gitlab.com/ee/ci/yaml/#pages
# [2] CI stages: https://docs.gitlab.com/ee/ci/yaml/#stages
# [3] Tags: https://docs.gitlab.com/ee/ci/yaml/#tags