diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 695020d..2f5edd8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,164 +1,176 @@ .build_docker: image: 'docker:19.03.11' services: - docker:19.03.11-dind variables: # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" stage: .pre before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - echo ${DOCKERFILE} - cd ${DOCKERFILE} - docker build -t ${DOCKERREPO} . - docker push ${DOCKERREPO} when: manual docker build:debian_bullseye: extends: .build_docker variables: DOCKERFILE: dockerfiles/debian:bullseye/ DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:debian_bullseye docker build:ubuntu_19_10: extends: .build_docker variables: DOCKERFILE: dockerfiles/ubuntu:19.10/ DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:ubuntu_19_10 +docker build:ubuntu_20_04: + extends: .build_docker + variables: + DOCKERFILE: dockerfiles/ubuntu:20.04/ + DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:ubuntu_20_04 + .image_lm: variables: CCACHE_BASEDIR: ${CI_PROJECT_DIR}/ CCACHE_DIR: ${CI_PROJECT_DIR}/ccache cache: key: ${DOCKERREPO}_${CI_COMMIT_REF_SLUG} paths: - ${CI_PROJECT_DIR}/ccache - third-party - .git/modules/third-party image: ${DOCKERREPO} artifacts: paths: - build expire_in: 1 day .build_lm: extends: - .image_lm stage: build before_script: - git submodule update --init third-party/eigen - git submodule update --init third-party/akantu - git submodule update --init third-party/lammps script: - echo $CCACHE_DIR - echo $CCACHE_BASEDIR - echo "free -h" - free -h - echo "grep -c ^processor /proc/cpuinfo" - grep -c ^processor /proc/cpuinfo - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE:STRING=Release -DLIBMULTISCALE_AKANTU_PLUGIN:BOOL=ON -DLIBMULTISCALE_MD1D:BOOL=ON -DLIBMULTISCALE_MECA1D:BOOL=ON -DLIBMULTISCALE_LAMMPS_PLUGIN:BOOL=ON -DLIBMULTISCALE_DOCUMENTATION:BOOL=ON -DLIBMULTISCALE_TESTS:BOOL=ON .. - cmake . - make - ls ../ccache .tests: stage: test variables: OMPI_MCA_plm: 'isolated' OMPI_MCA_btl: 'tcp,self' OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 OMPI_MCA_rmaps_base_oversubscribe: 1 script: - cd build/test - export PYTHONPATH=$PYTHONPATH:$CI_PROJECT_DIR/build/python:$CI_PROJECT_DIR/test/python ; ctest -T test --no-compress-output --timeout 300 after_script: - cd build/test - tag=$(head -n 1 < Testing/TAG) - if [ -e Testing/${tag}/Test.xml ]; then - xsltproc -o ./juint.xml ${CI_PROJECT_DIR}/test/ctest2junit.xsl Testing/${tag}/Test.xml; - fi artifacts: when: always paths: - build/test/juint.xml reports: junit: - build/test/juint.xml build:debian_bullseye: variables: DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:debian_bullseye extends: - .build_lm build:ubuntu_19_10: variables: DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:ubuntu_19_10 extends: - .build_lm +build:ubuntu_20_04: + variables: + DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:ubuntu_20_04 + extends: + - .build_lm + test:debian_bullseye: allow_failure: true variables: DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:debian_bullseye extends: - .tests - .image_lm dependencies: - build:debian_bullseye pages: extends: - .image_lm variables: DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:debian_bullseye stage: deploy script: - cd build - rm -r doc - export PYTHONPATH=$PYTHONPATH:$CI_PROJECT_DIR/build/python ; make libmultiscale-doc - mv doc/build/html ../public artifacts: paths: - public only: - master package: extends: - .image_lm variables: DOCKERREPO: registry.gitlab.com/libmultiscale/libmultiscale:debian_bullseye stage: deploy script: - cd build/python - python3 setup.py sdist bdist_wheel artifacts: paths: - build/python/dist only: - master diff --git a/doc/source/Installation.rst b/doc/source/Installation.rst index e028955..22967f8 100644 --- a/doc/source/Installation.rst +++ b/doc/source/Installation.rst @@ -1,80 +1,84 @@ Getting Started =============== .. |lm| replace:: *LibMultiScale* Dependencies ------------ -In `Debian bullseye `_ the necessary dependencies can be installed with +For `Debian bullseye `_ , +`Ubuntu 19.10 (Eoan Ermine) `_ , +and +`Ubuntu 20.04 (Focal Fossa) `_ +the necessary dependencies can be installed with .. code-block:: bash apt-get -qq update && apt-get install -y cmake build-essential python3-dev python3-numpy libboost-dev libfftw3-dev libgsl-dev gfortran liblapack-dev libopenmpi-dev sharutils git doxygen graphviz python3-pip texlive-latex-base libmumps-dev libscotch-dev In order to be able to generate the documentation the following may be issued .. code-block:: bash apt-get install -y git doxygen graphviz python3-pip texlive-latex-base pip3 install sphinx breathe sphinx-rtd-theme Getting source code ------------------- |lm| source code can be downloaded from the gitlab repository: .. code-block:: bash git clone https://gitlab.com/libmultiscale/libmultiscale.git Fetching the submodules ----------------------- In order to prepare for the compilation, several submodules are required: .. code-block:: bash git submodule update --init third-party/eigen And to activate the *molecular dynamics*, *finite elements* and *dislocation dynamics* plugins, other submodules have to be activated: .. code-block:: bash # Akantu finite element support git submodule update --init third-party/akantu # Lammps molecular dynamics support git submodule update --init third-party/akantu # ParaDiS discrete dislocation dynamics support git submodule update --init third-party/paradis Compiling --------- |lm| is a *cmake* project. Therefore to configure it you can either follow the usual way: .. code-block:: bash cd libmultiscale mkdir build cd build ccmake *[ Set the options that you need ]* Setting the option at the command line is possible by specifying the activated options .. code-block:: bash cmake -DCMAKE_BUILD_TYPE:STRING=Release -DLIBMULTISCALE_MD1D:BOOL=ON -DLIBMULTISCALE_MECA1D:BOOL=ON -DLIBMULTISCALE_LAMMPS_PLUGIN:BOOL=ON -DLIBMULTISCALE_AKANTU_PLUGIN:BOOL=ON -DLIBMULTISCALE_PARADIS_PLUGIN:BOOL=ON -DLIBMULTISCALE_DOCUMENTATION:BOOL=ON .. .. code-block:: bash make make install