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}
# 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="-l:libfftw3.so -l:libfftw3f.so -l:libfftw3_threads.so -l:libfftw3f_threads.so -L${GSTLAL_DIR}/lib -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl"

Alexander Pace
committed
cache:
key: $CI_JOB_NAME
paths:
- ccache
- level0
- level1
- level2

Alexander Pace
committed
- test-gstlal
- test-inspiral
- test-burst
- test-offline
level0:gstlal:
image: aepace/gstlal-dev:el7-mkl-1.14
stage: level0
script:
- cd gstlal
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
only:
- pushes
level1:gstlal-ugly:
image: aepace/gstlal-dev:el7-mkl-1.14
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}
only:
- pushes
level2:gstlal-calibration:
image: aepace/gstlal-dev:el7-mkl-1.14
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}
only:
- pushes
level2:gstlal-inspiral:
image: aepace/gstlal-dev:el7-mkl-1.14
stage: level2
dependencies:
- level1:gstlal-ugly
script:
- cd gstlal-inspiral
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR} --disable-massmodel
- make
- make install
artifacts:
expire_in: 3h
paths:
- ${GSTLAL_DIR}
only:
- pushes
level2:gstlal-burst:
image: aepace/gstlal-dev:el7-mkl-1.14
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}
only:
- pushes
- schedules
image: aepace/gstlal-dev:el7-mkl-1.14
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
stage: verify
script:
# -------------------------------------------------------------------
# gstlal
# -------------------------------------------------------------------
#- echo "$PWD" > ./pwd_output.out
- cd gstlal
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
- cd ..
# -------------------------------------------------------------------
# gstlal-ugly
# -------------------------------------------------------------------
- cd gstlal-ugly
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
- cd ..
# -------------------------------------------------------------------
# gstlal-calibration
# -------------------------------------------------------------------
- cd gstlal-calibration
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
- cd ..
# -------------------------------------------------------------------
# gstlal-inspiral
# -------------------------------------------------------------------
- cd gstlal-inspiral
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR} --disable-massmodel
- make
- make install
- cd ..
# -------------------------------------------------------------------
# gstlal-burst
# -------------------------------------------------------------------
- cd gstlal-burst
- ./00init.sh
- ./configure --prefix=${GSTLAL_DIR}
- make
- make install
- cd ..
only:
- manual
allow_failure: true
test:gstlal:
image: aepace/gstlal-dev:el7-mkl-1.14

Alexander Pace
committed
stage: test-gstlal
dependencies:
script:
- export GSTLAL_FIR_WHITEN=0
# Get the necessary ROM data:
- git clone https://git.ligo.org/lscsoft/lalsuite-extra.git ${GSTLAL_DIR}/lalsuite-extra
- export LAL_DATA_PATH=${GSTLAL_DIR}/lalsuite-extra/data/lalsimulation/
# Run doctests
- 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 --ignore python/dagfile.py --ignore python/httpinterface.py
only:
- pushes
- schedules
allow_failure: true
test:gstlal-inspiral:
image: aepace/gstlal-dev:el7-mkl-1.14

Alexander Pace
committed
stage: test-inspiral
dependencies:
- level2:gstlal-inspiral
script:
- export GSTLAL_FIR_WHITEN=0
- cd gstlal-inspiral
- 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 --ignore python/stats/inspiral_extrinsics.py --ignore python/templates.py --ignore python/inspiral_pipe.py
only:
- pushes
- schedules
test:gstlal-burst:
image: aepace/gstlal-dev:el7-mkl-1.14

Alexander Pace
committed
stage: test-burst
dependencies:
- level2:gstlal-burst
script:
- cd gstlal-burst
- python -m pytest -v --doctest-modules --ignore python/excesspower --ignore tests/trigger_test_01.py
only:
- pushes
- schedules
test:offline:
image: aepace/gstlal-dev:el7-mkl-1.14

Alexander Pace
committed
stage: test-offline
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:
- yum -y install texlive-base texlive-dvipng
- yum -y install texlive-latex texlive-latex-base-doc texlive-latex-fonts texlive-latex-bin texlive-latex-bin-bin
- yum -y install texlive-pictures texlive-pstricks texlive-pstricks-doc
# Get the necessary ROM data:
- 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
- cp -rf ./WEBDIR/gstlal_offline_tutorial ../../public/
artifacts:

Alexander Pace
committed
expire_in: 24h
paths:
- gstlal-inspiral/tests
only:
- pushes
allow_failure: true
image: aepace/gstlal-dev:el7-mkl-1.14
stage: nightly-pages
script:
- echo "Building Documentation"

Patrick Godwin
committed
# Download and install sphinx, 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:
- yum -y install texlive-base texlive-dvipng
- yum -y install texlive-latex texlive-latex-base-doc texlive-latex-fonts texlive-latex-bin texlive-latex-bin-bin
- yum -y install texlive-pictures texlive-pstricks texlive-pstricks-doc
# Download and install phython-sphinx. The version available for SL7 (1.1)
# is too old (see errors in previous piplines). But newer versions won't
# install on SL7 because setuptools is too old. I (Alex) recurred to find
# the newest version that would actually install.
- wget https://github.com/sphinx-doc/sphinx/archive/1.5.zip
- unzip 1.5.zip
- cd sphinx-1.5/
- python setup.py install --prefix=${GSTLAL_DIR}

Patrick Godwin
committed
- export GSTLAL_FIR_WHITEN=0

Alexander Pace
committed
- export TMPDIR=tmp/
- 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