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 # Location of *.spec.in patch script and arguments: PATCHSCRIPT: patch_optimized_spec_file COMP: gcc PATCHFLAGS: -c $COMP -k --nocheck -f before_script: # Set up directory structure and copy over built-dependencies from container: - mkdir public # Enable gcc-devtoolset-7 - source /opt/rh/devtoolset-7/enable # Set up Intel Dev Environment: - source /opt/intel/bin/compilervars.sh intel64 # Runtime and testing variables. Add these to the container on the "docker" # stage. - export TMPDIR=/tmp - export GSTLAL_FIR_WHITEN=0 cache: key: $CI_JOB_NAME paths: - ccache stages: - level0 - level1 - level2 - test-gstlal - test-inspiral - test-burst - test-offline - docker - nightly-pages - verify # # build rpms # .levelN:rpm: &levelN-rpm-package image: containers.ligo.org/alexander.pace/gstlal-dev/gstlal-dev:el7 variables: GIT_STRATEGY: fetch RPM_BUILD_CPUS: 4 script: - if [ -d rpmbuild ]; then yum -y install rpmbuild/RPMS/x86_64/*.rpm; fi - cd ${CI_JOB_NAME#level?:rpm:} - ./00init.sh - $PATCHSCRIPT $PATCHFLAGS ./*.spec.in - ./configure --enable-gtk-doc $EXTRA_CONFIG_FLAGS - make - make dist # Install dependencies - yum-builddep -y ${CI_JOB_NAME#level?:rpm:}.spec - rpmbuild -tb --define "_topdir $CI_PROJECT_DIR/rpmbuild" ${CI_JOB_NAME#level?:rpm:}-*.tar.gz artifacts: expire_in: 18h paths: - rpmbuild/RPMS/x86_64/${CI_JOB_NAME#level?:rpm:}-*.rpm - rpmbuild/RPMS/x86_64/python2-${CI_JOB_NAME#level?:rpm:}-*.rpm only: - schedules - tags - web allow_failure: true level0:rpm:gstlal: <<: *levelN-rpm-package stage: level0 level1:rpm:gstlal-ugly: <<: *levelN-rpm-package stage: level1 dependencies: - level0:rpm:gstlal level2:rpm:gstlal-inspiral: <<: *levelN-rpm-package stage: level2 dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly variables: EXTRA_CONFIG_FLAGS: "--disable-massmodel" level2:rpm:gstlal-calibration: <<: *levelN-rpm-package stage: level2 dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly level2:rpm:gstlal-burst: <<: *levelN-rpm-package stage: level2 dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly #level0:gstlal: # image: containers.ligo.org/alexander-pace/gstlal-dev/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} # when: always # only: # - pushes # - schedules # #level1:gstlal-ugly: # image: containers.ligo.org/alexander-pace/gstlal-dev/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} # when: always # only: # - pushes # - schedules # #level2:gstlal-calibration: # image: containers.ligo.org/alexander-pace/gstlal-dev/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} # when: always # only: # - pushes # - schedules # #level2:gstlal-inspiral: # image: containers.ligo.org/alexander-pace/gstlal-dev/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} # when: always # only: # - pushes # - schedules # #level2:gstlal-burst: # image: containers.ligo.org/alexander-pace/gstlal-dev/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} # when: always # only: # - pushes # - schedules # #gstlal-verify: # image: containers.ligo.org/alexander-pace/gstlal-dev/gstlal-dev:el7-mkl-1.14 # 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 test:gstlal: image: containers.ligo.org/alexander.pace/gstlal-dev/gstlal-dev:el7 stage: test-gstlal dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly - level2:rpm:gstlal-calibration - level2:rpm:gstlal-inspiral - level2:rpm:gstlal-burst script: # Install RPMs and set up the test environment: - if [ -d rpmbuild ]; then yum -y install rpmbuild/RPMS/x86_64/*.rpm; fi - export GSTLAL_FIR_WHITEN=0 - gst-inspect-1.0 # Get the necessary ROM data: - git clone https://git.ligo.org/alexander.pace/gstlal-testing-data.git ${GSTLAL_DIR}/gstlal-testing-data - export LAL_DATA_PATH=${GSTLAL_DIR}/gstlal-testing-data/ # Run doctests - cd gstlal - python -m pytest -v --doctest-modules --ignore gst/python --ignore port-tools --ignore tests --ignore share --ignore python/misc.py --ignore python/pipeparts/__init__.py --ignore python/matplotlibhelper.py --ignore python/dagfile.py --ignore python/httpinterface.py only: - schedules test:gstlal-inspiral: image: containers.ligo.org/alexander.pace/gstlal-dev/gstlal-dev:el7 stage: test-inspiral dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly - level2:rpm:gstlal-calibration - level2:rpm:gstlal-inspiral - level2:rpm:gstlal-burst script: # Install RPMs and set up the test environment: - if [ -d rpmbuild ]; then yum -y install rpmbuild/RPMS/x86_64/*.rpm; fi - export GSTLAL_FIR_WHITEN=0 - gst-inspect-1.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/imr_utils.py --ignore python/stats/inspiral_extrinsics.py --ignore python/templates.py --ignore python/inspiral_pipe.py --ignore python/plotsnr.py --ignore python/p_astro_gstlal.py only: - schedules allow_failure: true test:gstlal-burst: image: containers.ligo.org/alexander.pace/gstlal-dev/gstlal-dev:el7 stage: test-burst dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly - level2:rpm:gstlal-calibration - level2:rpm:gstlal-inspiral - level2:rpm:gstlal-burst script: # Install RPMs and set up the test environment: - if [ -d rpmbuild ]; then yum -y install rpmbuild/RPMS/x86_64/*.rpm; fi - export GSTLAL_FIR_WHITEN=0 - gst-inspect-1.0 - cd gstlal-burst - python -m pytest -v --doctest-modules --ignore python/excesspower --ignore tests/trigger_test_01.py only: - schedules allow_failure: true test:offline: image: containers.ligo.org/alexander.pace/gstlal-dev/gstlal-dev:el7 stage: test-offline dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly - level2:rpm:gstlal-calibration - level2:rpm:gstlal-inspiral - level2:rpm:gstlal-burst script: # Install RPMs and set up the test environment: - if [ -d rpmbuild ]; then yum -y install rpmbuild/RPMS/x86_64/*.rpm; fi - gst-inspect-1.0 # Export variables for the offline tutorial - export LAL_PATH=/usr - export USER=gstlal_CI_test - yum -y install bc # Get the necessary ROM data: - git clone https://git.ligo.org/alexander.pace/gstlal-testing-data.git ${GSTLAL_DIR}/gstlal-testing-data - export LAL_DATA_PATH=${GSTLAL_DIR}/gstlal-testing-data/ - cd gstlal-inspiral/tests # Patch gstlal_inspiral to disable servicediscovery/avahi: #- patch ${GSTLAL_DIR}/bin/gstlal_inspiral ./disable_service_discovery.patch # Run the makefile: - make -f Makefile.offline_tutorial_test # Back-up the results docs: - cp -rf ./WEBDIR/gstlal_offline_tutorial ../../public/ artifacts: expire_in: 24h paths: - gstlal-inspiral/tests/WEBDIR/gstlal_offline_tutorial - public when: always only: - schedules allow_failure: true pages: image: containers.ligo.org/alexander.pace/gstlal-dev/gstlal-dev:el7 stage: nightly-pages script: # Install RPMs and set up the test environment: - if [ -d rpmbuild ]; then yum -y install rpmbuild/RPMS/x86_64/*.rpm; fi - gst-inspect-1.0 - export GSTLAL_FIR_WHITEN=0 - yum -y install python2-pip texlive* graphviz python-matplotlib - pip install setuptools sphinx==1.7 sphinx_rtd_theme - cd doc; make html - cd ..; cp -rf doc/_build/* public/ dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly - level2:rpm:gstlal-calibration - level2:rpm:gstlal-inspiral - level2:rpm:gstlal-burst - test:offline artifacts: paths: - public only: - master@lscsoft/gstlal - schedules except: - web - pushes docker:el7: stage: docker before_script: [] script: # add RPMs to directory to pass to docker - mkdir rpms - mv rpmbuild/RPMS/x86_64/*.rpm rpms # copy over spec file patching script - rm -rf rpmbuild* # Build the container: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker build --pull -t $CI_REGISTRY_IMAGE/gstlal:el7 --file .gitlab-ci.Dockerfile.e7 . - docker push $CI_REGISTRY_IMAGE/gstlal:el7 dependencies: - level0:rpm:gstlal - level1:rpm:gstlal-ugly - level2:rpm:gstlal-calibration - level2:rpm:gstlal-inspiral - level2:rpm:gstlal-burst only: - schedules