# Is performed before the scripts in the stages step before_script: - source /etc/profile # Defines stages which are to be executed stages: - build - test - deploy # - experiment # Stage "build" debian8.10: image: debian:8.10-slim stage: build script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - cd build - cmake .. - make -j2 - make install debian9.3: image: debian:9.3-slim stage: build script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake .. - make -j2 - make install debian9.3-i386: image: i386/debian:9.3-slim stage: build script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake .. - make -j2 - make install debian10: image: debian:buster-slim stage: build script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake .. - make -j2 - make install ubuntu16.04: image: ubuntu:xenial stage: build script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - cd build - cmake .. - make -j2 - make install ubuntu18.04: image: ubuntu:bionic stage: build script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake .. - make -j2 - make install get-dockerfile: image: debian:9.3-slim stage: build script: - apt-get update - apt-get install -y git ca-certificates - git clone https://github.com/carlesfernandez/docker-gnsssdr artifacts: paths: - docker-gnsssdr/ # Stage "test" run-tests-amd64: image: debian:9.3-slim stage: test script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - mkdir build-test - mkdir build64 - cd build-test - cmake .. - make -j2 - make check - ../install/run_tests --gtest_output=xml - mv *.xml ../build64/ - cd .. - rm -rf build-test artifacts: paths: - build64/*.xml run-tests-i386: image: i386/debian:9.3-slim stage: test script: - apt-get update - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - mkdir build-test - mkdir build32 - cd build-test - cmake -DENABLE_PACKAGING=ON .. - make -j2 - make check - ../install/run_tests --gtest_output=xml - mv *.xml ../build32/ - cd .. - rm -rf build-test artifacts: paths: - build32/*.xml # Stage "deploy" docker-gnsssdr: image: docker:latest stage: deploy services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" script: - mkdir docker-build - cd docker-build - cp ../docker-gnsssdr/Dockerfile . - docker build -t carlesfernandez/docker-gnsssdr . - docker push carlesfernandez/docker-gnsssdr dependencies: - get-dockerfile # Stage "experiment" run-experiment: image: debian:9.3-slim stage: build script: - apt-get update - apt-get upgrade # Grab analysis and representation tools - apt-get install -y openjdk-8-jre-headless default-jre-headless ca-certificates-java - apt-get install -y octave # Grab the data set - apt-get install -y curl - curl https://zenodo.org/record/1172670/files/L2_signal_samples.tar.xz --output L2_signal_samples.tar.xz - tar xvzf L2_signal_samples.tar.xz ./data/ - cd data - md5sum L2_signal_samples.dat > data.md5 - md5sum -c data.md5 artifacts: paths: - data/*.dat