2016-06-22 16:26:05 +05:00
stages :
- build
- test
2016-07-11 15:08:06 +05:00
- deploy
2016-06-22 16:26:05 +05:00
- cleanup
############################################
# System templates
############################################
# Windows
.template_windows_32 : &win32
tags :
- windows
- x86
before_script :
- "echo off"
- 'call "%VS140COMNTOOLS%\..\..\VC\bin\vcvars32.bat"'
- set EXT_LIBS=C:\external_libs\x86
- set CMAKE_GENERATOR=Visual Studio 14 2015
2016-07-11 17:59:30 +05:00
- set INSTALL_DIR=C:/install32_%CI_BUILD_REF_NAME%
- set NETGENDIR=C:\install32_%CI_BUILD_REF_NAME%\bin
- set PYTHONPATH=C:\install32_%CI_BUILD_REF_NAME%\lib\site-packages
2016-06-22 16:26:05 +05:00
- set PYTHON_LIB=C:/Python3.5_32/libs/python35.lib
- set PYTHON_CONFIG=-DPYTHON_LIBRARY=C:/Python3.5_32/libs/python35.lib -DPYTHON_INCLUDE_DIR=C:/Python3.5_32/include -DPYTHON_INCLUDE_DIR2=C:/Python3.5_32/include
.template_windows_64 : &win64
tags :
- windows
- x64
before_script :
- "echo off"
- 'call "%VS140COMNTOOLS%\..\..\VC\bin\amd64\vcvars64.bat"'
- set EXT_LIBS=C:\external_libs\x64
- set CMAKE_GENERATOR=Visual Studio 14 2015 Win64
2016-07-11 17:59:30 +05:00
- set INSTALL_DIR=C:/install64_%CI_BUILD_REF_NAME%
- set NETGENDIR=C:\install64_%CI_BUILD_REF_NAME%\bin
- set PYTHONPATH=C:\install64_%CI_BUILD_REF_NAME%\lib\site-packages
2016-06-22 16:26:05 +05:00
- set PYTHON_LIB=C:/Python3.5/libs/python35.lib
- set PYTHON_CONFIG=-DPYTHON_LIBRARY=C:/Python3.5/libs/python35.lib
# Linux
.template_ubuntu : &ubuntu
tags :
- linux
before_script :
- pwd
- ls
- docker info
.template_ubuntu_1510 : &ubuntu_1510
<< : *ubuntu
variables :
UBUNTU_VERSION : "15.10"
.template_ubuntu_1604 : &ubuntu_1604
<< : *ubuntu
variables :
UBUNTU_VERSION : "16.04"
############################################
# Build stage
############################################
# Windows
.template_build_win : &tbuild_netgen_win
stage : build
script :
- if not exist build MKDIR build
- cd build
- DEL CMakeCache.txt
- RD /S /Q CMakeFiles
- >-
cmake ..\
-DADDITIONAL_PATHS="%EXT_LIBS%\ext_libs;%EXT_LIBS%\occ"
%PYTHON_CONFIG%
-G"%CMAKE_GENERATOR%"
-DINSTALL_DIR="%INSTALL_DIR%"
-DUSE_OCC=ON
-DCMAKE_CXX_FLAGS_RELEASE="/W0"
- cmake --build . --target INSTALL --config Release
2016-06-22 16:27:26 +05:00
build_netgen_win32 :
2016-06-22 16:26:05 +05:00
<< : *win32
<< : *tbuild_netgen_win
cache :
paths :
- build/
- src/
2016-07-11 17:59:30 +05:00
key : "netgen_win32_${CI_BUILD_REF_NAME}"
2016-06-22 16:26:05 +05:00
2016-06-22 16:27:26 +05:00
build_netgen_win64 :
2016-06-22 16:26:05 +05:00
<< : *win64
<< : *tbuild_netgen_win
cache :
paths :
- build/
- src/
2016-07-11 17:59:30 +05:00
key : "netgen_win64_${CI_BUILD_REF_NAME}"
2016-06-22 16:26:05 +05:00
# Linux
.template_build_linux : &build_linux
stage : build
script :
2016-07-11 17:59:30 +05:00
- docker build -t netgen_${CI_BUILD_REF_NAME}:${UBUNTU_VERSION} -f tests/docker_${UBUNTU_VERSION} .
- rm -f netgen_${CI_BUILD_REF_NAME}_$UBUNTU_VERSION.id
- docker run --cidfile netgen_${CI_BUILD_REF_NAME}_${UBUNTU_VERSION}.id -e CCACHE_DIR=/ccache -v /mnt/ccache:/ccache netgen_${CI_BUILD_REF_NAME}:${UBUNTU_VERSION} bash /root/src/netgen/tests/build.sh
- docker commit `cat netgen_${CI_BUILD_REF_NAME}_${UBUNTU_VERSION}.id` netgen_${CI_BUILD_REF_NAME}_installed:${UBUNTU_VERSION}
- rm netgen_${CI_BUILD_REF_NAME}_${UBUNTU_VERSION}.id
2016-06-22 16:26:05 +05:00
build_ubuntu_1510 :
<< : *ubuntu_1510
<< : *build_linux
build_ubuntu_1604 :
<< : *ubuntu_1604
<< : *build_linux
############################################
# Test stage
############################################
# Windows
.template_test_win : &ttest_netgen_win
stage : test
script :
- cd build
- ctest -C Release -V
# skip since we have no machine with 32 bits
.test_netgen_win32 :
<< : *win32
<< : *ttest_netgen_win
cache :
paths :
- build/
- src/
key : "netgen_win32"
2016-06-22 16:27:26 +05:00
test_netgen_win64 :
2016-06-22 16:26:05 +05:00
<< : *win64
<< : *ttest_netgen_win
cache :
paths :
- build/
- src/
key : "netgen_win64"
# Linux
.template_test_linux : &test_linux
stage : test
script :
2016-07-11 17:59:30 +05:00
- docker run netgen_${CI_BUILD_REF_NAME}_installed:${UBUNTU_VERSION} bash -c 'cd /root/build/netgen && make test ARGS="-V"'
2016-06-22 16:26:05 +05:00
test_ubuntu_1510 :
<< : *ubuntu_1510
<< : *test_linux
test_ubuntu_1604 :
<< : *ubuntu_1604
<< : *test_linux
2016-07-11 15:08:06 +05:00
############################################
# Deploy stage
############################################
2016-06-22 16:26:05 +05:00
############################################
# Cleanup stage
############################################
linux_cleanup :
stage : cleanup
tags :
- linux
script :
# remove intermediate and old docker images and containers
2016-06-29 13:34:25 +05:00
- docker rm -f `docker ps --no-trunc -aq`
2016-06-22 16:26:05 +05:00
- docker images --no-trunc -aqf "dangling=true" | xargs docker rmi -f
when : always
2016-07-11 15:08:06 +05:00
allow_failure : true
2016-06-22 16:26:05 +05:00