From 3a0e43d70b9defa67e66c7475e82ebf77c7a46b7 Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Fri, 28 Feb 2020 10:00:15 +0100
Subject: [PATCH] [CI] update gitlab CI

from the generated configuration at
https://rainboard.laas.fr/project/eigenpy/.gitlab-ci.yml

This:
- add the doc-coverage target, to save the generated documentation an
  code-coverage results
- add the format target, to check the code formatting (allow_failure is
  activated here for now), ref https://github.com/gepetto/linters
- set 18.04 as the main platform (for now, this affects only format &
  doc-coverage target)
- allow automatic retries in case of runner failures
- drop 14.04 checks
---
 .gitlab-ci.yml | 91 ++++++++++++++++++++++++++++++++++----------------
 1 file changed, 62 insertions(+), 29 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ca60b02..82fbd15 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,6 @@
+# https://rainboard.laas.fr/project/eigenpy/.gitlab-ci.yml
+
 variables:
-  GIT_SUBMODULE_STRATEGY: "recursive"
-  GIT_DEPTH: "3"
   CCACHE_BASEDIR: "${CI_PROJECT_DIR}"
   CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
 
@@ -9,25 +9,36 @@ cache:
     - ccache
 
 .robotpkg-py-eigenpy: &robotpkg-py-eigenpy
+  retry:
+    max: 2
+    when: runner_system_failure
   except:
     - gh-pages
   script:
     - mkdir -p ccache
-    - cd /root/robotpkg/math/py-eigenpy
+    - cd /root/robotpkg/math
     - git pull
-    - make checkout MASTER_REPOSITORY="dir ${CI_PROJECT_DIR}"
+    - cd py-eigenpy
+    - make checkout MASTER_REPOSITORY="git ${CI_PROJECT_DIR}/.git"
     - make install
-    - cd work.$(hostname)/$(make show-var VARNAME=DISTNAME)
+    - build=$(make show-var VARNAME=CONFIGURE_DIRS); cd $(make show-var VARNAME=WRKSRC); cd $build
     - make test
-    - make uninstall
+
+robotpkg-py-eigenpy-16.04-debug:
+  <<: *robotpkg-py-eigenpy
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:16.04
+  before_script:
+    - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
 
 robotpkg-py-eigenpy-16.04-release:
   <<: *robotpkg-py-eigenpy
   image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:16.04
 
-robotpkg-py-eigenpy-18.04-release:
+robotpkg-py-eigenpy-py3-16.04-debug:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:18.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:16.04
+  before_script:
+    - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
 
 robotpkg-py-eigenpy-py3-16.04-release:
   <<: *robotpkg-py-eigenpy
@@ -37,47 +48,69 @@ robotpkg-py-eigenpy-py3-18.04-release:
   <<: *robotpkg-py-eigenpy
   image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:18.04
 
-robotpkg-py-eigenpy-14.04-release:
-  <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:14.04
-
-robotpkg-py-eigenpy-14.04-debug:
+robotpkg-py-eigenpy-py3-18.04-debug:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:14.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:18.04
   before_script:
     - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
 
-robotpkg-py-eigenpy-py3-14.04-release:
+robotpkg-py-eigenpy-18.04-release:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:14.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:18.04
 
-robotpkg-py-eigenpy-py3-14.04-debug:
+robotpkg-py-eigenpy-18.04-debug:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:14.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:18.04
   before_script:
     - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
 
-robotpkg-py-eigenpy-16.04-debug:
+robotpkg-py-eigenpy-stretch-debug:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:16.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:stretch
   before_script:
     - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
 
-robotpkg-py-eigenpy-py3-16.04-debug:
+robotpkg-py-eigenpy-stretch-release:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:16.04
-  before_script:
-    - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:stretch
 
-robotpkg-py-eigenpy-18.04-debug:
+robotpkg-py-eigenpy-py3-stretch-release:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:18.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:stretch
+
+robotpkg-py-eigenpy-py3-stretch-debug:
+  <<: *robotpkg-py-eigenpy
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:stretch
   before_script:
     - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
 
-robotpkg-py-eigenpy-py3-18.04-debug:
+doc-coverage:
   <<: *robotpkg-py-eigenpy
-  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy-py3:18.04
+  image: memmos.laas.fr:5000/stack-of-tasks/eigenpy/py-eigenpy:18.04
   before_script:
-    - echo PKG_OPTIONS.py-eigenpy=debug >> /opt/openrobots/etc/robotpkg.conf
+    - echo -e 'CXXFLAGS+= --coverage\nLDFLAGS+= --coverage\nPKG_DEFAULT_OPTIONS= debug' >> /opt/openrobots/etc/robotpkg.conf
+  after_script:
+    - cd /root/robotpkg/math/py-eigenpy
+    - build=$(make show-var VARNAME=CONFIGURE_DIRS); cd $(make show-var VARNAME=WRKSRC); cd $build
+    - mkdir -p ${CI_PROJECT_DIR}/coverage/
+    - gcovr -r .
+    - gcovr -r . --html --html-details -o ${CI_PROJECT_DIR}/coverage/index.html
+  artifacts:
+    expire_in: 1 day
+    paths:
+      - doxygen-html/
+      - coverage/
 
+format:
+  allow_failure: true
+  image: gepetto/linters
+  retry:
+    max: 2
+    when: runner_system_failure
+  before_script:
+    - test -f /builds/setup.cfg || ln -s /root/setup.cfg /builds
+    - test -f /builds/.clang-format || ln -s /root/.clang-format /builds
+  script:
+    - check-clang-format.sh
+    - flake8 .
+    - yapf -dr .
-- 
GitLab