From 2ae3bb1dbb6368de82932980c5da3aeed6943fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu> Date: Wed, 24 Nov 2021 14:13:22 +0100 Subject: [PATCH] license-headers --- .gitlab-ci.yml | 88 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 67 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aab847e..5dd2df5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,5 @@ stages: + - license - none - csm - falko @@ -9,7 +10,43 @@ stages: # update apt - apt-get update -.build_install_csm_template: &build_install_csm_definition +.license_header_template: &license_header_definition + - cd $CI_PROJECT_DIR + + # configure git + - export CI_NEW_BRANCH=ci_processing$CI_COMMIT_SHORT_SHA + - git config --global user.email "${CI_EMAIL}" + - git config --global user.name "${CI_USERNAME}" + - git checkout -b $CI_NEW_BRANCH # temporary branch + + # license headers + - export CURRENT_YEAR=$( date +'%Y' ) + - echo "current year:" ${CURRENT_YEAR} + - cd scripts + - if [ -f license_header_${CURRENT_YEAR}.txt ]; then + # add license headers to new files + - echo "File license_header_${CURRENT_YEAR}.txt already exists. License headers are assumed to be updated. Adding headers to new files..." + - ./license_manager.sh --add --path=${CI_PROJECT_DIR} --license-header=license_header_${CURRENT_YEAR}.txt + - else + # update license headers of all files + - export PREV_YEAR=$(( CURRENT_YEAR-1 )) + - echo "Creating new file license_header_${CURRENT_YEAR}.txt..." + - git mv license_header_${PREV_YEAR}.txt license_header_${CURRENT_YEAR}.txt + - sed -i "s/${PREV_YEAR}/${PREV_YEAR},${CURRENT_YEAR}/g" license_header_${CURRENT_YEAR}.txt + - ./license_manager.sh --update --path=${CI_PROJECT_DIR} --license-header=license_header_${CURRENT_YEAR}.txt + - fi + - cd .. + + # push changes (if any) + - if git commit -a -m "[skip ci] license headers added or modified" ; then + - git remote set-url --push origin "ssh://git@gitlab.iri.upc.edu:2202/${CI_PROJECT_PATH}.git" + - git push origin $CI_NEW_BRANCH:${CI_COMMIT_REF_NAME} + - else + - echo "No changes, nothing to commit!" + - fi + +.install_csm_template: &install_csm_definition + - cd $CI_BUILDS_DIR - apt-get install -y libgsl-dev - if [ -d csm ]; then - echo "directory csm exists" @@ -22,9 +59,9 @@ stages: - cmake . - make -j2 - make install - - cd .. -.build_install_falko_template: &build_install_falko_definition +.install_falko_template: &install_falko_definition + - cd $CI_BUILDS_DIR - if [ -d falkolib ]; then - echo "directory falkolib exists" - cd falkolib @@ -38,9 +75,9 @@ stages: - cmake .. - make -j2 - make install - - cd ../.. .build_and_test_template: &build_and_test_definition + - cd $CI_PROJECT_DIR - mkdir -pv build - cd build - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON .. @@ -48,6 +85,15 @@ stages: - ctest - make install +############ LICENSE HEADERS ############ +license_headers: + stage: license + image: labrobotica/wolf_deps:16.04 + except: + - master + script: + - *license_header_definition + ############ UBUNTU 16.04 TESTS ############ build_and_test_none:xenial: stage: none @@ -64,10 +110,10 @@ build_and_test_csm:xenial: cache: - key: csm-xenial paths: - - csm/ + - ${CI_BUILDS_DIR}/csm/ before_script: - *preliminaries_definition - - *build_install_csm_definition + - *install_csm_definition - ldconfig # update links (shared libraries) script: - *build_and_test_definition @@ -78,10 +124,10 @@ build_and_test_falko:xenial: cache: - key: falko-xenial paths: - - falkolib/ + - ${CI_BUILDS_DIR}/falkolib/ before_script: - *preliminaries_definition - - *build_install_falko_definition + - *install_falko_definition - ldconfig # update links (shared libraries) script: - *build_and_test_definition @@ -92,14 +138,14 @@ build_and_test_csm_falko:xenial: cache: - key: csm-xenial paths: - - csm/ + - ${CI_BUILDS_DIR}/csm/ - key: falko-xenial paths: - - falkolib/ + - ${CI_BUILDS_DIR}/falkolib/ before_script: - *preliminaries_definition - - *build_install_falko_definition - - *build_install_csm_definition + - *install_falko_definition + - *install_csm_definition - ldconfig # update links (shared libraries) script: - *build_and_test_definition @@ -120,10 +166,10 @@ build_and_test_csm:bionic: cache: - key: csm-bionic paths: - - csm/ + - ${CI_BUILDS_DIR}/csm/ before_script: - *preliminaries_definition - - *build_install_csm_definition + - *install_csm_definition - ldconfig # update links (shared libraries) script: - *build_and_test_definition @@ -134,10 +180,10 @@ build_and_test_falko:bionic: cache: - key: falko-bionic paths: - - falkolib/ + - ${CI_BUILDS_DIR}/falkolib/ before_script: - *preliminaries_definition - - *build_install_falko_definition + - *install_falko_definition - ldconfig # update links (shared libraries) script: - *build_and_test_definition @@ -148,14 +194,14 @@ build_and_test_csm_falko:bionic: cache: - key: csm-bionic paths: - - csm/ + - ${CI_BUILDS_DIR}/csm/ - key: falko-bionic paths: - - falkolib/ + - ${CI_BUILDS_DIR}/falkolib/ before_script: - *preliminaries_definition - - *build_install_falko_definition - - *build_install_csm_definition + - *install_falko_definition + - *install_csm_definition - ldconfig # update links (shared libraries) script: - - *build_and_test_definition + - *build_and_test_definition \ No newline at end of file -- GitLab