# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/C++.gitlab-ci.yml

# use the official gcc image, based on debian
# can use verions as well, like gcc:5.2
# see https://hub.docker.com/_/gcc/

build:
  image: gcc
  stage: build
  script:
    - mkdir public
    - g++ ./src/main.cpp -I include -o ./public/sim.out -D NATIVE -Wall
    - ./public/sim.out
    - mv simOut.csv public
  artifacts:
    paths:
      - public

pythonplots:
  # stage: build
  image: python:3.9-buster
  dependencies:
    - build
  script:
    - pip install --no-cache-dir -U -r ./pythonHelpers/requirements.txt
    - python ./pythonHelpers/plots.py
  artifacts:
    paths:
      - public

juliaplots:
  image: julia:1.7
  dependencies:
    - build
  script:
    - apt-get update
    - apt-get install -y unzip
    - julia -e 'using Pkg; Pkg.activate("./juliaHelpers/"); Pkg.instantiate()'
    - julia --project=./juliaHelpers ./juliaHelpers/simplot.jl
  artifacts:
    paths:
      - public
  only:
    - main

pages:
  stage: deploy
  dependencies:
    - build
    - pythonplots
    - juliaplots
  script:
    - ""
  artifacts:
    paths:
      - public
  only:
    - main