Newer
Older
image: docker:latest
variables:
DOCKER_DRIVER: overlay
BRANCH: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
COMMIT: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
NIGHTLY: $CI_REGISTRY_IMAGE:nightly
TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
GSTLAL_DIR: $CI_PROJECT_DIR/opt/gstlal
before_script:
# Set up directory structure and copy over built-dependencies from container:
- mkdir public
- mkdir -p ${GSTLAL_DIR}
# Update apt info
- apt update
# Define GstLAL build parameters:
- export PATH="${GSTLAL_DIR}/bin:/usr/lib/ccache:/opt/local/libexec/ccache:${PATH}"
- export LD_LIBRARY_PATH="${GSTLAL_DIR}/lib:${GSTLAL_DIR}/lib64:${LD_LIBRARY_PATH}"
- export LIBRARY_PATH="${GSTLAL_DIR}/lib:${GSTLAL_DIR}/lib64:${LIBRARY_PATH}"
- export PKG_CONFIG_PATH="${GSTLAL_DIR}/lib/pkgconfig:${GSTLAL_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}"
- export GI_TYPELIB_PATH="${GSTLAL_DIR}/lib/girepository-1.0:${GSTLAL_DIR}/lib64/girepository-1.0:${GI_TYPELIB_PATH}"
- export GST_PLUGIN_PATH="${GSTLAL_DIR}/lib/gstreamer-1.0:${GSTLAL_DIR}/lib64/gstreamer-1.0:${GST_PLUGIN_PATH}"
- export PYTHONPATH="${GSTLAL_DIR}/lib64/python2.7/site-packages:${GSTLAL_DIR}/lib/python2.7/site-packages:${PYTHONPATH}"
- export GST_REGISTRY_1_0="${GSTLAL_DIR}/registry.bin"
- export CCACHE_DIR=${PWD}/ccache
# Define MKL environment variables:
- export MKLROOT="/opt/intel/compilers_and_libraries_2018.3.222/linux/mkl"
- export LIBRARY_PATH="/opt/intel/compilers_and_libraries_2018.3.222/linux/tbb/lib/intel64_lin/gcc4.7:/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin"
- export CPATH="/opt/intel/compilers_and_libraries_2018.3.222/linux/mkl/include"
- export PATH=PATH="/opt/intel/compilers_and_libraries_2018.3.222/linux/bin/intel64:${PATH}"
- export PKG_CONFIG_PATH="/opt/intel/compilers_and_libraries_2018.3.222/linux/mkl/bin/pkgconfig:${PKG_CONFIG_PATH}"
- export LD_LIBRARY_PATH="/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64:/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.3.222/linux/tbb/lib/intel64_lin/gcc4.7:/opt/intel/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin:/opt/intel/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin"
# Define build and linking parameters:
- export CFLAGS="-O3 -fPIC -DMKL_ILP64 -m64 -I${MKLROOT}/include -I${GSTLAL_DIR}/include"
- export LDFLAGS="-lfftw3 -lfftw3f -lfftw3_threads -lfftw3f_threads -L${GSTLAL_DIR}/lib -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl"
- export LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libfftw3.so:/usr/lib/x86_64-linux-gnu/libfftw3f.so"
cache:
key: $CI_JOB_NAME
paths:
- ccache
- level0
- level1
- level2
level0:gstlal:
image: aepace/gstlal-dev:stretch-mkl
stage: level0
script:
#- echo "$PWD" > ./pwd_output.out
- cd gstlal
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
- gstlal
only:
- pushes
level1:gstlal-ugly:
image: aepace/gstlal-dev:stretch-mkl
stage: level1
dependencies:
- level0:gstlal
script:
- cd gstlal-ugly
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
- gstlal-ugly
only:
- pushes
level2:gstlal-calibration:
image: aepace/gstlal-dev:stretch-mkl
stage: level2
dependencies:
- level1:gstlal-ugly
script:
- cd gstlal-calibration
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
- gstlal-calibration
only:
- pushes
level2:gstlal-inspiral:
image: aepace/gstlal-dev:stretch-mkl
stage: level2
dependencies:
- level1:gstlal-ugly
script:
- cd gstlal-inspiral
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
- gstlal-inspiral
only:
- pushes
level2:gstlal-burst:
image: aepace/gstlal-dev:stretch-mkl
stage: level2
dependencies:
- level1:gstlal-ugly
script:
- cd gstlal-burst
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
- gstlal-burst
only:
- pushes
- schedules
test:gstlal:
image: aepace/gstlal-dev:stretch-mkl
stage: test
dependencies:
script:
- apt-get install -y python-pytest

Patrick Godwin
committed
- python -m pytest -v --doctest-modules --ignore gst/python --ignore port-tools --ignore tests --ignore python/misc.py --ignore python/pipeparts/__init__.py --ignore python/matplotlibhelper.py
only:
- pushes
- schedules
allow_failure: true
test:gstlal-inspiral:
image: aepace/gstlal-dev:stretch-mkl
stage: test
dependencies:
- level2:gstlal-inspiral
script:
- export GSTLAL_FIR_WHITEN=0
- apt-get install -y python-pytest
- cd gstlal-inspiral

Patrick Godwin
committed
- python -m pytest -v --doctest-modules --ignore gst/python --ignore tests --ignore python/lloidplots.py --ignore python/llweb.py --ignore python/plotsegments.py --ignore python/plotsensitivity.py --ignore python/snglinspiraltable.py --ignore python/spawaveform.py --ignore python/spiirparts.py --ignore python/webpage.py --ignore python/imr_utils.py
only:
- pushes
- schedules
allow_failure: true
test:gstlal-burst:
image: aepace/gstlal-dev:stretch-mkl
stage: test
dependencies:
- level2:gstlal-burst
script:
- apt-get install -y python-pytest
- cd gstlal-burst
- python -m pytest -v --doctest-modules --ignore python/excesspower --ignore tests/trigger_test_01.py
only:
- pushes
- schedules
allow_failure: true
test:offline:
image: aepace/gstlal-dev:stretch-mkl
stage: test
dependencies:
- level1:gstlal-ugly
- level2:gstlal-inspiral
script:
# Export variables for the offline tutorial
- export GSTLAL_FIR_WHITEN=0
- export GSTLAL_WEBVIS_DIR=../../gstlal-ugly/share/vis/
- export LAL_PATH=${GSTLAL_DIR}
- export USER=gstlal_CI_test
# Get documentation packages, and download lalsuite-extra data:
- apt-get install --assume-yes texlive-base texlive-binaries texlive-extra-utils texlive-font-utils texlive-fonts-extra texlive-fonts-extra-doc texlive-fonts-recommended dvipng
- apt-get install --assume-yes texlive-fonts-recommended-doc texlive-generic-extra texlive-generic-recommended texlive-latex-base texlive-latex-base-doc texlive-latex-extra
- apt-get install --assume-yes texlive-latex-extra-doc texlive-latex-recommended texlive-latex-recommended-doc texlive-pictures texlive-pictures-doc texlive-pstricks texlive-pstricks-doc texlive-science texlive-science-doc
# Start the avahi and dbus services:
- service dbus start
- service avahi-daemon start
# Get the necessary ROM data:
- git lfs install
- git clone https://git.ligo.org/lscsoft/lalsuite-extra.git ${GSTLAL_DIR}/lalsuite-extra
- export LAL_DATA_PATH=${GSTLAL_DIR}/lalsuite-extra/data/lalsimulation/
- cd gstlal-inspiral/tests
- make -f Makefile.offline_tutorial_test
artifacts:
expire_in: 3h
paths:
- gstlal-inspiral/tests
only:
- pushes
allow_failure: true
image: aepace/gstlal-dev:stretch-mkl
stage: nightly-pages
script:
- echo "Building Documentation"
# Download and install sphynx, texlive, etc. I'm installing these here
# since they don't need to be part of the dev container for running, only
# for building documentation. This shaves ~600MB off the size of the gstlal-dev
# container:
- apt-get install --assume-yes python-sphinx texlive-base texlive-binaries texlive-extra-utils texlive-font-utils texlive-fonts-extra texlive-fonts-extra-doc texlive-fonts-recommended
- apt-get install --assume-yes texlive-fonts-recommended-doc texlive-generic-extra texlive-generic-recommended texlive-latex-base texlive-latex-base-doc texlive-latex-extra
- apt-get install --assume-yes texlive-latex-extra-doc texlive-latex-recommended texlive-latex-recommended-doc texlive-pictures texlive-pictures-doc texlive-pstricks texlive-pstricks-doc texlive-science texlive-science-doc

Patrick Godwin
committed
- export GSTLAL_FIR_WHITEN=0
- cd doc; make html
- cd ..; cp -rf doc/_build/* public/
dependencies:
- level2:gstlal-inspiral
- level2:gstlal-calibration

Patrick Godwin
committed
- level2:gstlal-burst
artifacts:
paths:
- public
only:
- master@lscsoft/gstlal
- schedules
- web