diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1e3fd8d3f1cb0f097525d16c8aa08c7257c080ce..89e476c1d94834e7708eb2d40d3afa1df837e67e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,6 +20,32 @@ # update apt - apt-get update +.license_header_template: &license_header_definition + - echo "current year of the headers:" ${LICENSE_HEADER_YEAR} + - export LICENSE_HEADER_YEAR_NEW=$( date +'%Y' ) + # UPDATE: check if license headers have to be updated + - if [ ! ${LICENSE_HEADER_YEAR} == ${LICENSE_HEADER_YEAR_NEW} ] ; then + - echo "license headers should be changed!" + - echo "Creating new file wolf_scripts/license_header_${LICENSE_HEADER_YEAR_NEW}.txt..." + - cd wolf_scripts + - cp license_header_${LICENSE_HEADER_YEAR}.txt license_header_${LICENSE_HEADER_YEAR_NEW}.txt + - sed -e "s/${LICENSE_HEADER_YEAR}/'${LICENSE_HEADER_YEAR},${LICENSE_HEADER_YEAR_NEW}'/g" license_header_${LICENSE_HEADER_YEAR_NEW}.txt + - ./license_manager.sh --update --path=. --license-header=license_header_${LICENSE_HEADER_YEAR_NEW}.txt + # ADD: add license headers + - else + - ./license_manager.sh --add --path=. --license-header=license_header_${LICENSE_HEADER_YEAR}.txt + - fi + + # push changes (if any) + - git config --global user.email "${CI_EMAIL}" + - git config --global user.name "${CI_USERNAME}" + - if git commit -m "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 HEAD:${CI_COMMIT_REF_NAME} + - else + - echo "No changes, nothing to commit!" + - fi + .build_and_test_template: &build_and_test_definition - mkdir -pv build - cd build @@ -42,20 +68,8 @@ license_header: image: labrobotica/wolf_deps:16.04 before_script: - *preliminaries_definition - - script: - - git config --global user.email "${CI_EMAIL}" - - git config --global user.name "${CI_USERNAME}" - - - touch prova.txt - - git add -f prova.txt - - git commit -m "added prova.txt" || echo "No changes, nothing to commit!" - - - git remote set-url --push origin "ssh://git@gitlab.iri.upc.edu:2202/${CI_PROJECT_PATH}.git" - - # push changes - # always return true so that the build does not fail if there are no changes - - git push origin HEAD:${CI_COMMIT_REF_NAME} + script: + - *license_header_definition build_and_test:xenial: stage: build_and_test