image: python:3.9-buster

stages:
  - test
  - deploy
#  - pull
#  - build

#.pullprivate:
#  stage: pull
#  script:
#    - echo "Cloning repos to set up a fresh build environment."
#    - cd ..
#    - if [ -d 02465private ];  then echo "Private repository exists";  else git clone https://oauth2:${GBAR_TOKEN}@gitlab.gbar.dtu.dk/02465material/02465private.git; fi
#    - if [ -d 02465students ]; then echo "Students repository exists"; else git clone https://oauth2:${GBAR_TOKEN}@gitlab.gbar.dtu.dk/02465material/02465students.git; fi
#    - rm -rf 02465students_complete
#    - cp -rf 02465students 02465students_complete

#setup_38:
#  extends: .pullprivate
#  image: python:3.8-buster
#
#setup_39:
#  extends: .pullprivate
#  image: python:3.9-buster
#
#setup_310:
#  extends: .pullprivate
#  image: python:3.10-buster

#.build:
#  stage: build
#  script:
#    - apt-get update
#    - apt install git
#    - apt install -y python-opengl xvfb # Virtual framebuffer for GL stuff.
#    - echo "Current working directory"
#    - pwd
#    - echo "Contents of cwd:"
#    - ls
#    - echo "Content of 02465material"
#    - ls /builds/02465material
#    - echo "Content of /builds/02465material/02465public"
#    - ls /builds/02465material/02465public
#    - cd pythontools
#    #- pip install -U setuptools #==58 # Required for unitgrade-devel because of python 2to3 is not in python 3.10... very hacky, and very bad. Need to change away from minifier.
#    - pip install -U -r requirements_full.txt --no-cache --upgrade
#    - cd tests
#    - echo "CURRENT WORKKING DIRECTORY"
#    - pwd
#    - xvfb-run -s "-screen 0 1400x900x24" python deploy_student_repos.py # > deploy_student_repos_log.txt


#build_38:
#  extends: .build
#  image: python:3.8-buster
#
#build_39:
#  extends: .build
#  image: python:3.9-buster

#build_310:
#  extends: .build
#  image: python:3.10-buster


.test_students:
  stage: test
  script:
    - echo "Testing student files"
    - pwd
    - apt-get update
    - apt install git
    - apt install -y xvfb # Virtual framebuffer for GL stuff.
    - apt install -y inkscape pdftk
    - pip install -U Pillow
    - pip install -e ./
    - cd tests
    - xvfb-run -s "-screen 0 1400x900x24" python test_slider.py
    - latexmk --version
#    - apt-get install -y software-properties-common
#    - apt-get -y update
#    - add-apt-repository universe
#    - sed -i "/^# deb.*multiverse/ s/^# //" /etc/apt/sources.list
#    - sed -i "/^# deb.*universe/ s/^# //" /etc/apt/sources.list
#    - add-apt-repository ppa:inkscape.dev/stable
#    - apt install -y swig # build-essential python-dev swig python-pygame # This is for swig. Remove when you go to a conda build system (and see what happens).
#    - pip install -U -r ../02465students/requirements_pip.txt  --no-cache --upgrade
#    - pip install -U -r ../02465students/requirements_conda.txt  --no-cache --upgrade
#    - cd ../02465public/pythontools/tests


test_39:
  extends: .test_students
  image: python:3.9-buster

#test_39:
#  extends: .test_students
#  image: python:3.9-buster
#
#test_310:
#  extends: .test_students
#  image: python:3.10-buster

# Copies the previous pipeline but ok.
pages:
  stage: deploy
  script:
    - echo "Building the documentation."
    - pwd
    - apt-get update
    - apt install -y git
    - apt install -y inkscape pdftk
    - pip install -U Pillow
    - pip install -e ./
    - apt install -y python-opengl xvfb # Virtual framebuffer for GL stuff.
    - cd tests
    - xvfb-run -s "-screen 0 1400x900x24" python test_slider.py
    - cd ..
    - ls tests
    - cp tests/tests_images public -rf
    - cp tests/expected public -rf
    - cat public/index.html
    - echo "in tests/expected"
    - ls tests/expected/*
    - echo "in public/expected"
    - ls public/expected/*
    - echo "in public/tests_images"
    - ls public/tests_images/*
  #    - apt install -y python3-sphinx
#    - echo "hello" > public/index.html
#    - pip install -U -r pythontools/requirements_full.txt --no-cache --upgrade
#    - cd ../02465students_complete/docs/source
#    - sphinx-build -b html . ../../../02465public/public
#    - echo "> Changind directory to 02465public"
#    - cd ../../../02465public # Important for the artifact directory to be available.
#    - echo "> current working directory"
#    - pwd
#    - echo "Content of this directory is:"
#    - ls
#    - echo "Content of public directory is:"
#    - ls public
#    - echo "ci project dir {$CI_PROJECT_DIR}"
#    - cat public/index.html
  artifacts:
    paths:
    - public
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH


#- pip install -U setuptools #==58 Required for unitgrade-devel because of python 2to3 is not in python 3.10... very hacky, and very bad. Need to change away from minifier.
#    - xvfb-run -s "-screen 0 1400x900x24" python deploy_student_repos.py > deploy_student_repos_log.txt
#- echo "The public/docs/source/index.rst file is"
#- cat pythontools/docs/source/index.rst
#- echo "The 02465students/docs/source/index.rst file is"
#- cat ../02465students_complete/docs/source/index.rst
