diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..66c6629fd51c2eaa77bfdd6b5f43775c40ec6be0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,161 @@ +stages: + - none + - csm + - falko + - csm_falko + +############ YAML ANCHORS ############ +.preliminaries_template: &preliminaries_definition + # update apt + - apt-get update + +.build_install_csm_template: &build_install_csm_definition + - apt-get install -y libgsl-dev + - if [ -d csm ]; then + - echo "directory csm exists" + - cd csm + - git pull + - else + - git clone https://github.com/AndreaCensi/csm.git + - cd csm + - fi + - cmake . + - make -j2 + - make install + - cd .. + +.build_install_falko_template: &build_install_falko_definition + - if [ -d falkolib ]; then + - echo "directory falkolib exists" + - cd falkolib + - git pull + - else + - git clone https://gitlab.iri.upc.edu/labrobotica/algorithms/falkolib.git + - cd falkolib + - fi + - mkdir -pv build + - cd build + - cmake .. + - make -j2 + - make install + - cd ../.. + +.build_and_test_template: &build_and_test_definition + - mkdir -pv build + - cd build + - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON .. + - make -j2 + - ctest + - make install + +############ UBUNTU 16.04 TESTS ############ +build_and_test_none:xenial: + stage: none + image: labrobotica/wolf_deps:16.04 + before_script: + - *preliminaries_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +build_and_test_csm:xenial: + stage: csm + image: labrobotica/wolf_deps:16.04 + cache: + - key: csm-xenial + paths: + - csm/ + before_script: + - *preliminaries_definition + - *build_install_csm_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +wolf_build_and_test_falko:xenial: + stage: falko + image: labrobotica/wolf_deps:16.04 + cache: + - key: falko-xenial + paths: + - falkolib/ + before_script: + - *preliminaries_definition + - *build_install_falko_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +wolf_build_and_test_csm_falko:xenial: + stage: csm_falko + image: labrobotica/wolf_deps:16.04 + cache: + - key: csm-xenial + paths: + - csm/ + - key: falko-xenial + paths: + - falkolib/ + before_script: + - *preliminaries_definition + - *build_install_falko_definition + - *build_install_csm_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +############ UBUNTU 18.04 TESTS ############ +wolf_build_and_test_none:bionic: + stage: none + image: labrobotica/wolf_deps:18.04 + before_script: + - *preliminaries_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +wolf_build_and_test_csm:bionic: + stage: csm + image: labrobotica/wolf_deps:18.04 + cache: + - key: csm-bionic + paths: + - csm/ + before_script: + - *preliminaries_definition + - *build_install_csm_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +wolf_build_and_test_falko:bionic: + stage: falko + image: labrobotica/wolf_deps:18.04 + cache: + - key: falko-bionic + paths: + - falkolib/ + before_script: + - *preliminaries_definition + - *build_install_falko_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition + +wolf_build_and_test_csm_falko:bionic: + stage: csm_falko + image: labrobotica/wolf_deps:18.04 + cache: + - key: csm-bionic + paths: + - csm/ + - key: falko-bionic + paths: + - falkolib/ + before_script: + - *preliminaries_definition + - *build_install_falko_definition + - *build_install_csm_definition + - ldconfig # update links (shared libraries) + script: + - *build_and_test_definition