2016-06-22 16:26:05 +05:00
|
|
|
stages:
|
|
|
|
- build
|
|
|
|
- test
|
2019-08-29 18:55:58 +05:00
|
|
|
- test_ngsolve
|
2016-06-22 16:26:05 +05:00
|
|
|
- cleanup
|
|
|
|
|
2019-08-29 18:55:58 +05:00
|
|
|
push_github_sourceforge:
|
|
|
|
stage: build
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
- docker
|
|
|
|
script:
|
|
|
|
- git remote add sourceforge ssh://mhochste@git.code.sf.net/p/netgen-mesher/git || true
|
|
|
|
- git remote add github git@github.com:NGSolve/netgen.git || true
|
|
|
|
- git remote update
|
|
|
|
- git checkout master
|
|
|
|
- git pull origin master
|
|
|
|
- git push sourceforge master
|
|
|
|
- git push github master
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
|
2016-06-22 16:26:05 +05:00
|
|
|
############################################
|
2018-12-14 15:24:07 +05:00
|
|
|
# Windows
|
2016-06-22 16:26:05 +05:00
|
|
|
############################################
|
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
.template_windows: &win
|
2016-06-22 16:26:05 +05:00
|
|
|
tags:
|
|
|
|
- windows
|
|
|
|
- x64
|
|
|
|
before_script:
|
|
|
|
- "echo off"
|
2019-01-03 19:55:17 +05:00
|
|
|
- 'call "%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvars64"'
|
2018-12-14 16:13:22 +05:00
|
|
|
- set CI_DIR=C:\ci\%CI_PIPELINE_ID%
|
2019-02-13 16:53:01 +05:00
|
|
|
- set CLCACHE_BASEDIR=C:\ci\%CI_PIPELINE_ID%
|
2017-01-31 18:12:22 +05:00
|
|
|
- set NETGEN_BUILD_DIR=%CI_DIR%\build
|
|
|
|
- set INSTALL_DIR=%CI_DIR%\install
|
2019-02-13 16:53:01 +05:00
|
|
|
- set SRC_DIR=%CI_DIR%\src
|
2017-01-31 18:12:22 +05:00
|
|
|
- set NETGENDIR=%INSTALL_DIR%\bin
|
|
|
|
- set PYTHONPATH=%INSTALL_DIR%\lib\site-packages
|
2019-08-22 17:15:43 +05:00
|
|
|
- set PATH=%NETGENDIR%;%PATH%
|
2016-06-22 16:26:05 +05:00
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
build_win:
|
|
|
|
<<: *win
|
2016-06-22 16:26:05 +05:00
|
|
|
stage: build
|
|
|
|
script:
|
2019-02-13 16:53:01 +05:00
|
|
|
- mkdir %SRC_DIR%
|
|
|
|
- xcopy . %SRC_DIR%\ /O /X /E /H /K /Q
|
|
|
|
- cd %SRC_DIR%
|
2017-01-31 18:12:22 +05:00
|
|
|
- git submodule update --init --recursive
|
|
|
|
- rd /s /q %NETGEN_BUILD_DIR%
|
|
|
|
- mkdir %NETGEN_BUILD_DIR%
|
|
|
|
- cd %NETGEN_BUILD_DIR%
|
2016-06-22 16:26:05 +05:00
|
|
|
- >-
|
2019-02-13 16:53:01 +05:00
|
|
|
cmake %SRC_DIR%
|
|
|
|
-G Ninja
|
|
|
|
-DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%
|
2020-03-11 19:53:08 +05:00
|
|
|
-DUSE_CGNS=ON
|
2016-06-22 16:26:05 +05:00
|
|
|
-DUSE_OCC=ON
|
2019-10-28 18:25:48 +05:00
|
|
|
-DOCC_LIBRARY=C:/install_opencascade_7.4.0_static/win64/vc14/lib/TKernel.lib
|
|
|
|
-DOCC_INCLUDE_DIR=C:/install_opencascade_7.4.0_static/inc
|
|
|
|
-DOCC_LINK_FREETYPE=ON
|
2019-02-13 16:53:01 +05:00
|
|
|
-DUSE_CCACHE=ON
|
2019-08-22 13:17:57 +05:00
|
|
|
-DENABLE_UNIT_TESTS=ON
|
2016-12-22 23:12:11 +05:00
|
|
|
-DCMAKE_BUILD_TYPE=Release
|
2019-02-13 16:53:01 +05:00
|
|
|
- cmake --build . --target install --config Release
|
2016-06-22 16:26:05 +05:00
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
test_win:
|
|
|
|
<<: *win
|
2018-12-14 15:24:07 +05:00
|
|
|
stage: test
|
|
|
|
script:
|
2019-10-04 15:25:14 +05:00
|
|
|
- cd tests\pytest
|
2018-12-14 16:13:22 +05:00
|
|
|
- cd %NETGEN_BUILD_DIR%\netgen
|
2019-08-08 13:20:16 +05:00
|
|
|
- ctest -C Release -V --output-on-failure
|
2018-12-14 15:24:07 +05:00
|
|
|
- cd ..
|
2019-08-29 18:55:58 +05:00
|
|
|
needs: ["build_win"]
|
2018-12-14 15:24:07 +05:00
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
cleanup_win:
|
|
|
|
<<: *win
|
2018-12-14 15:24:07 +05:00
|
|
|
stage: cleanup
|
|
|
|
tags:
|
|
|
|
- windows
|
|
|
|
- x64
|
|
|
|
script:
|
|
|
|
- cd %CI_PROJECT_DIR%
|
|
|
|
- rd /s /q %CI_DIR%
|
|
|
|
when: always
|
|
|
|
allow_failure: true
|
2019-08-29 18:55:58 +05:00
|
|
|
needs: ["test_win"]
|
2018-12-14 15:24:07 +05:00
|
|
|
|
|
|
|
############################################
|
|
|
|
# Ubuntu/Linux
|
|
|
|
############################################
|
|
|
|
|
|
|
|
.template_ubuntu: &ubuntu
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
before_script:
|
|
|
|
- pwd
|
|
|
|
- ls
|
|
|
|
- docker info
|
|
|
|
variables:
|
|
|
|
UBUNTU_VERSION: "18.04"
|
|
|
|
|
2019-08-15 09:55:46 +05:00
|
|
|
build_ubuntu_debug:
|
2018-12-14 15:20:39 +05:00
|
|
|
<<: *ubuntu
|
2016-06-22 16:26:05 +05:00
|
|
|
stage: build
|
|
|
|
script:
|
2019-04-17 19:51:52 +05:00
|
|
|
- docker build -t netgen_${CI_PIPELINE_ID}:${UBUNTU_VERSION} -f tests/dockerfile .
|
|
|
|
- rm -f netgen_${CI_PIPELINE_ID}_$UBUNTU_VERSION.id
|
2019-08-29 20:41:22 +05:00
|
|
|
- >-
|
|
|
|
docker run
|
|
|
|
--cidfile netgen_${CI_PIPELINE_ID}_${UBUNTU_VERSION}.id
|
|
|
|
-e CCACHE_DIR=/ccache
|
|
|
|
-v /mnt/ccache:/ccache
|
|
|
|
netgen_${CI_PIPELINE_ID}:${UBUNTU_VERSION}
|
|
|
|
bash /root/src/netgen/tests/build_debug.sh
|
2019-04-17 19:51:52 +05:00
|
|
|
- docker commit `cat netgen_${CI_PIPELINE_ID}_${UBUNTU_VERSION}.id` netgen_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION}
|
|
|
|
- rm netgen_${CI_PIPELINE_ID}_${UBUNTU_VERSION}.id
|
2016-06-22 16:26:05 +05:00
|
|
|
|
2019-04-17 18:25:30 +05:00
|
|
|
build_ubuntu_mpi:
|
|
|
|
<<: *ubuntu
|
|
|
|
stage: build
|
|
|
|
script:
|
2019-04-17 19:51:52 +05:00
|
|
|
- docker build -t netgen_mpi_${CI_PIPELINE_ID}:${UBUNTU_VERSION} -f tests/dockerfile_mpi .
|
|
|
|
- rm -f netgen_mpi_${CI_PIPELINE_ID}_$UBUNTU_VERSION.id_mpi
|
2019-08-29 20:41:22 +05:00
|
|
|
- >-
|
|
|
|
docker run>-
|
|
|
|
--cidfile netgen_mpi_${CI_PIPELINE_ID}_${UBUNTU_VERSION}.id>-
|
|
|
|
-e CCACHE_DIR=/ccache
|
|
|
|
-e RUN_SLOW_TESTS=${RUN_SLOW_TESTS}
|
|
|
|
-v /mnt/ccache:/ccache
|
|
|
|
netgen_mpi_${CI_PIPELINE_ID}:${UBUNTU_VERSION}
|
|
|
|
bash /root/src/netgen/tests/build_mpi.sh
|
2019-04-17 19:51:52 +05:00
|
|
|
- docker commit `cat netgen_mpi_${CI_PIPELINE_ID}_${UBUNTU_VERSION}.id` netgen_mpi_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION}
|
|
|
|
- rm netgen_mpi_${CI_PIPELINE_ID}_${UBUNTU_VERSION}.id
|
2019-04-17 18:25:30 +05:00
|
|
|
|
2019-08-29 18:55:58 +05:00
|
|
|
test_ubuntu_debug:
|
2018-12-14 15:20:39 +05:00
|
|
|
<<: *ubuntu
|
2016-06-22 16:26:05 +05:00
|
|
|
stage: test
|
|
|
|
script:
|
2017-02-23 20:41:27 +05:00
|
|
|
- >-
|
|
|
|
docker run
|
|
|
|
-e NETGENDIR=/opt/netgen/bin
|
|
|
|
-e PYTHONPATH=/opt/netgen/lib/python3/dist-packages
|
2019-04-17 19:51:52 +05:00
|
|
|
netgen_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION}
|
2019-08-08 14:06:59 +05:00
|
|
|
bash -c 'cd /root/build/netgen && make test_netgen ARGS="-V --output-on-failure"'
|
2019-08-29 18:55:58 +05:00
|
|
|
needs: ["build_ubuntu_debug"]
|
2016-06-22 16:26:05 +05:00
|
|
|
|
2019-04-17 18:25:30 +05:00
|
|
|
test_ubuntu_mpi:
|
|
|
|
<<: *ubuntu
|
|
|
|
stage: test
|
|
|
|
script:
|
|
|
|
- >-
|
|
|
|
docker run
|
2019-08-29 20:41:22 +05:00
|
|
|
-e RUN_SLOW_TESTS=${RUN_SLOW_TESTS}
|
2019-04-17 18:25:30 +05:00
|
|
|
-e NETGENDIR=/opt/netgen/bin
|
|
|
|
-e PYTHONPATH=/opt/netgen/lib/python3/dist-packages
|
2019-04-17 19:51:52 +05:00
|
|
|
netgen_mpi_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION}
|
2019-08-08 14:06:59 +05:00
|
|
|
bash -c 'cd /root/build/netgen && make test_netgen ARGS="-V --output-on-failure"'
|
2019-08-29 18:55:58 +05:00
|
|
|
needs: ["build_ubuntu_mpi"]
|
2019-04-17 18:25:30 +05:00
|
|
|
|
2019-04-25 15:04:11 +05:00
|
|
|
test_build_ngsolve:
|
|
|
|
<<: *ubuntu
|
|
|
|
allow_failure: true
|
2019-08-29 18:55:58 +05:00
|
|
|
stage: test_ngsolve
|
2019-04-25 15:04:11 +05:00
|
|
|
script:
|
|
|
|
- >-
|
|
|
|
docker run
|
|
|
|
-e NETGENDIR=/opt/netgen/bin
|
|
|
|
-e PYTHONPATH=/opt/netgen/lib/python3/dist-packages
|
|
|
|
-e MKLROOT=/opt/intel/mkl
|
|
|
|
-v /opt/intel:/opt/intel
|
|
|
|
-e CCACHE_DIR=/ccache
|
|
|
|
-v /mnt/ccache:/ccache
|
|
|
|
netgen_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION}
|
|
|
|
bash -c 'cd /root/src/netgen/tests/ && ./build_ngsolve.sh'
|
|
|
|
|
2018-12-12 15:43:28 +05:00
|
|
|
# cpp guideline checks
|
2019-10-01 14:22:22 +05:00
|
|
|
# test_guidelines:
|
|
|
|
# <<: *ubuntu
|
|
|
|
# stage: test
|
|
|
|
# script:
|
|
|
|
# - docker run -e CCACHE_DIR=/ccache -v /mnt/ccache:/ccache netgen_${CI_PIPELINE_ID}:${UBUNTU_VERSION} bash /root/src/netgen/tests/build_guidelines.sh
|
|
|
|
# when: always
|
|
|
|
# allow_failure: true
|
2018-12-14 15:20:39 +05:00
|
|
|
|
2018-12-28 17:43:15 +05:00
|
|
|
# check if it compiles without spdlog
|
|
|
|
test_noSpdlog:
|
|
|
|
<<: *ubuntu
|
|
|
|
stage: test
|
|
|
|
script:
|
2019-04-17 19:51:52 +05:00
|
|
|
- docker run -e CCACHE_DIR=/ccache -v /mnt/ccache:/ccache netgen_${CI_PIPELINE_ID}:${UBUNTU_VERSION} bash /root/src/netgen/tests/build_nospdlog.sh
|
2018-12-28 17:43:15 +05:00
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
cleanup_ubuntu:
|
2018-12-14 15:24:07 +05:00
|
|
|
stage: cleanup
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
script:
|
|
|
|
# remove intermediate and old docker images and containers
|
|
|
|
- docker rm -f `docker ps --no-trunc -aq`
|
2018-12-14 15:31:42 +05:00
|
|
|
- docker images --no-trunc -aqf "dangling=true" | xargs docker rmi -f || true
|
2019-09-28 14:21:40 +05:00
|
|
|
- docker rmi -f netgen_${CI_PIPELINE_ID}:${UBUNTU_VERSION} || true
|
|
|
|
- docker rmi -f netgen_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION} || true
|
|
|
|
- docker rmi -f netgen_mpi_${CI_PIPELINE_ID}:${UBUNTU_VERSION} || true
|
|
|
|
- docker rmi -f netgen_mpi_${CI_PIPELINE_ID}_installed:${UBUNTU_VERSION} || true
|
2018-12-14 15:31:42 +05:00
|
|
|
when: always
|
|
|
|
allow_failure: true
|
|
|
|
|
2019-04-17 18:25:30 +05:00
|
|
|
|
2018-12-14 15:31:42 +05:00
|
|
|
############################################
|
|
|
|
# MacOSX
|
|
|
|
############################################
|
|
|
|
|
|
|
|
.template_mac: &mac
|
|
|
|
tags:
|
|
|
|
- mac
|
|
|
|
before_script:
|
|
|
|
- export ROOT_DIR=/tmp/$CI_PIPELINE_ID
|
|
|
|
- export SRC_DIR=$ROOT_DIR/src
|
|
|
|
- export BUILD_DIR=$ROOT_DIR/build
|
|
|
|
- export CMAKE_INSTALL_PREFIX=/tmp/$CI_PIPELINE_ID/install/Netgen.app
|
|
|
|
- export PYTHONPATH=$CMAKE_INSTALL_PREFIX/Contents/Resources/`python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1,0,''))"`:.
|
|
|
|
- export PATH=$CMAKE_INSTALL_PREFIX/Contents/MacOS:$PATH
|
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
build_mac:
|
2018-12-14 15:31:42 +05:00
|
|
|
<<: *mac
|
|
|
|
stage: build
|
|
|
|
script:
|
|
|
|
- git submodule update --init --recursive
|
|
|
|
- rm -rf $BUILD_DIR
|
|
|
|
- mkdir -p $BUILD_DIR
|
|
|
|
- rm -rf $SRC_DIR
|
|
|
|
- mkdir -p $SRC_DIR
|
|
|
|
- cp -a . $SRC_DIR/
|
|
|
|
- cd $BUILD_DIR
|
|
|
|
- >-
|
|
|
|
cmake $SRC_DIR
|
|
|
|
-DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX
|
|
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
|
|
-DUSE_NATIVE_ARCH=OFF
|
|
|
|
-DUSE_CCACHE=ON
|
|
|
|
-DENABLE_UNIT_TESTS=ON
|
2019-08-23 16:26:14 +05:00
|
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12
|
2018-12-14 15:31:42 +05:00
|
|
|
-DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
|
2020-03-12 01:30:43 +05:00
|
|
|
-DUSE_CGNS=ON
|
2019-10-28 18:25:48 +05:00
|
|
|
-DUSE_OCC=ON
|
|
|
|
-DOCC_LIBRARY=/usr/local/opt/opencascade-7.4.0/lib/libTKernel.a
|
|
|
|
-DOCC_INCLUDE_DIR=/usr/local/opt/opencascade-7.4.0/include/opencascade
|
|
|
|
-DOCC_LINK_FREETYPE=ON
|
2018-12-14 15:31:42 +05:00
|
|
|
- make -j5 install
|
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
test_mac:
|
2018-12-14 15:31:42 +05:00
|
|
|
<<: *mac
|
|
|
|
stage: test
|
|
|
|
script:
|
|
|
|
- cd $BUILD_DIR/netgen
|
2019-08-08 14:06:59 +05:00
|
|
|
- ctest . -V --output-on-failure
|
2019-08-29 18:55:58 +05:00
|
|
|
needs: ["build_mac"]
|
2018-12-14 15:31:42 +05:00
|
|
|
|
2018-12-14 15:56:11 +05:00
|
|
|
cleanup_mac:
|
2018-12-14 15:31:42 +05:00
|
|
|
<<: *mac
|
|
|
|
stage: cleanup
|
|
|
|
script:
|
|
|
|
- rm -rf $ROOT_DIR
|
2018-12-14 15:24:07 +05:00
|
|
|
when: always
|
|
|
|
allow_failure: true
|
2019-08-29 18:55:58 +05:00
|
|
|
needs: ["test_mac"]
|
2018-12-14 15:24:07 +05:00
|
|
|
|