*** Wartungsfenster jeden ersten Mittwoch vormittag im Monat ***

Skip to content
Snippets Groups Projects
.gitlab-ci.yml 7.87 KiB
Newer Older
# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# 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/Getting-Started.gitlab-ci.yml
default:
  image: "${CI_TEMPLATE_REGISTRY_HOST}/pages/ngmultiscale:latest"
stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy
  - pages
Hanser, Valentin's avatar
Hanser, Valentin committed

Hanser, Valentin's avatar
Hanser, Valentin committed
# build-ngsolve-job:       # This job runs in the build stage, which runs first.
#   stage: build
#   image: python:3.10 
Hanser, Valentin's avatar
Hanser, Valentin committed

Hanser, Valentin's avatar
Hanser, Valentin committed
#   before_script:
#     - apt-get update -q -y
#     - apt-get -y install python3 python3-distutils python3-tk libpython3-dev libxmu-dev tk-dev tcl-dev cmake git g++ libglu1-mesa-dev liblapacke-dev libocct-data-exchange-dev libocct-draw-dev occt-misc libtbb-dev libxi-dev
Hanser, Valentin's avatar
Hanser, Valentin committed
  
Hanser, Valentin's avatar
Hanser, Valentin committed
      
Hanser, Valentin's avatar
Hanser, Valentin committed
#   script:
#     - pwd
#     - export BASEDIR=/builds/valentin.hanser/ngmultiscale/ngsuite
#     - echo $BASEDIR
#     - mkdir -p $BASEDIR
#     - cd $BASEDIR && git clone https://github.com/NGSolve/ngsolve.git ngsolve-src
#     - cd $BASEDIR/ngsolve-src && git submodule update --init --recursive
#     - mkdir $BASEDIR/ngsolve-build
#     - mkdir $BASEDIR/ngsolve-install
#     - cd $BASEDIR/ngsolve-build
#     - cmake -DCMAKE_INSTALL_PREFIX=${BASEDIR}/ngsolve-install ${BASEDIR}/ngsolve-src
#     - make -j4
#     - ls
#     - ls $BASEDIR
#     - cd
#     - pwd
#     # - echo "export NETGENDIR=${BASEDIR}/ngsolve-install/bin" >> ~/.bashrc
#     # - echo "export PATH=\$NETGENDIR:\$PATH" >> ~/.bashrc
#     # - export PYTHONPATH_TMP=`python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1,0,''))"`
#     # - echo "export PYTHONPATH=\$NETGENDIR/../${PYTHONPATH_TMP}:\$PATH" >> ~/.bashrc
#     # - source ~/.bashrc
Hanser, Valentin's avatar
Hanser, Valentin committed
#   artifacts:
#     untracked: true
#     when: on_success
#     expire_in: "30 days"
#     paths:
#       - /builds/valentin.hanser/ngmultiscale/ngsuite/ngsolve-install
#       - /builds/valentin.hanser/ngmultiscale/ngsuite/ngsolve-src
Hanser, Valentin's avatar
Hanser, Valentin committed

Hanser, Valentin's avatar
Hanser, Valentin committed
#   cache:
#     - key: cache-ngsolve
#       paths:
#         # - /builds/valentin.hanser/ngmultiscale/ngsuite/*
Hanser, Valentin's avatar
Hanser, Valentin committed
# build-cempy-job:
#   stage: build
#   image: python:3.10 
#   needs: 
#     - "build-ngsolve-job"
#   dependencies:
#     - "build-ngsolve-job"
Hanser, Valentin's avatar
Hanser, Valentin committed
#   before_script:
#     - apt-get update -q -y
#     - apt-get install -y python3-pip
#     - python -V
#     - apt-get install -y cmake
Hanser, Valentin's avatar
Hanser, Valentin committed
#   script:
Hanser, Valentin's avatar
Hanser, Valentin committed

Hanser, Valentin's avatar
Hanser, Valentin committed
#     - echo "Compiling the code for cempy..."
#     - cd C++/cmake
#     - mkdir build
#     - cd build
#     - cmake ..  -DOPTION_BIOTSAVART=OFF -DOPTION_BSPLINEINTERFACESPACE=OFF -DOPTION_PREISACH_SCALAR=OFF -DOPTION_PREISACH_VECTOR=OFF -DOPTION_ENERGYBASEDMODEL=OFF -DOPTION_MARKUSLIB=OFF -DOPTION_MULTISCALE=OFF -DOPTION_MUNONLINBIRO=OFF -DOPTION_NONLINEAR=OFF -DOPTION_PHIFUNCTIONS=OFF
#     - make -j4
Hanser, Valentin's avatar
Hanser, Valentin committed
 
Hanser, Valentin's avatar
Hanser, Valentin committed
#     - python3 -c "from ngsolve import *;import cempy as cp"
#     - cd
#     - export PYTHONPATH=~/C++/cmake/build
#     - python3 -c "from ngsolve import *;import cempy as cp"


#   cache:
#     - key: cache-cempy
#       paths:
#         - /builds/valentin.hanser/ngmultiscale/C++/cmake/build/*



#   artifacts:
#     untracked: true
#     when: on_success
#     expire_in: "30 days"
#     paths:
#      - /builds/valentin.hanser/ngmultiscale/ngsuite/*
#      - /builds/valentin.hanser/ngmultiscale/C++/cmake/build/cempy.so

build-basicTypes-job:       # This job runs in the build stage, which runs first.
  stage: build
  image: gcc

  before_script:
     - apt update && apt -y install make

  script:
    - echo "Compiling the code for basicTypes..."
    - cd ./C++/basicTypes
    - make unitTest
    - echo "Compile basicTypes complete."
   
  artifacts:
    name: "$CI_JOB_ID"
    when: on_success
    expire_in: "1 days"
    paths:
      - ./C++/basicTypes/unitTest
      - ./C++/basicTypes/*.o
    

build-unitTestEverett-job:       # This job runs in the build stage, which runs first.
  stage: build
  image: gcc

  before_script:
     - apt update && apt -y install make

  script:
    - echo "Compiling the code for EverettMatrix..."
    - cd ./C++/preisach/preisachScalar/
    - make unitTestEverett -j3
    - echo "Compile unitTestEverett complete."
   
  artifacts:
    name: "$CI_JOB_ID"
    untracked: true
    when: on_success
    expire_in: "1 days"
    paths:
      - ./C++/preisach/preisachScalar/unitTestEverett
      - ./C++/preisach/preisachScalar/*.o

build-unitTestPreisachScalar-job:       # This job runs in the build stage, which runs first.
  stage: build
  image: gcc
  
  before_script:
     - apt update && apt -y install make

  script:
    - echo "Compiling the code for PreisachScalar..."
    - cd ./C++/preisach/preisachScalar/
    - make unitTest -j3
    - echo "Compile unitTest complete."
   
  artifacts:
    name: "$CI_JOB_ID"
    untracked: true
    when: on_success
    expire_in: "1 days"
    paths:
      - ./C++/preisach/preisachScalar/unitTest
      - ./C++/preisach/preisachScalar/*.o


# ---------------------------------------------------------------

unit-test-basicTypes-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  image: gcc

  dependencies:
    - "build-basicTypes-job"
  needs : 
    - "build-basicTypes-job"

  script:
    - echo "Running unit tests basicTypes."
    - cd ./C++/basicTypes
    - ./unitTest

    

unit-test-EverettUnitTest-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  image: gcc

  dependencies:
    - "build-unitTestEverett-job"
  needs : ["build-unitTestEverett-job"]

  script:
    - echo "Running unit tests Everett Matrix."
    - cd ./C++/preisach/preisachScalar
    - ./unitTestEverett 



unit-test-PreisachScalarUnitTest-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  image: gcc

  dependencies:
    - "build-unitTestPreisachScalar-job"
  needs : ["build-unitTestPreisachScalar-job"]

  script:
    - echo "Running unit tests PreisachScalar."
    - cd ./C++/preisach/preisachScalar
    - ./unitTest



unit-test-python3-MS_helper_function:
  stage: test    # It only starts when the job in the build stage completes successfully.
  image: python:3.10 


  needs: []

  before_script:
    - apt-get update -q -y
    - apt-get install -y python3-pip
    - python -V
    - pip3 install ngsolve
    - pip3 install numpy
    - pip3 install matplotlib
    - pip3 install sympy
    - export PYTHONPATH=/builds/valentin.hanser/ngmultiscale/python:/builds/valentin.hanser/ngmultiscale/python/MeshGenerators
    # - echo $PYTHONPATH
    

  script:
    - echo "Running python3 unit tests MS_helper_function."
    - cd unitTests
    - echo $PYTHONPATH
    - python3 unitTest_MS_helper_Functions.py


# do a make jupyter-files in docs
pages:
  image: python:3.10 
  stage: deploy
  script:
  - pip install -U sphinx
  - python3 -m pip install nbsphinx --user
  - pip install sphinx sphinx_rtd_theme
Hanser, Valentin's avatar
Hanser, Valentin committed
  - cd docs
  - cp -r _build/html ../public
  artifacts:
    paths:
    - public
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH