diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7eadca004198584a27222b1af0363040b12503e5..503a0eeec2df6472d823fd93d2d717e2b4237b79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,7 @@ include: - 'https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf/-/raw/$WOLF_CORE_BRANCH/.ci_templates/.yaml_schema_cpp.yml' - 'https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf/-/raw/$WOLF_CORE_BRANCH/.ci_templates/.clang_format.yml' - 'https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf/-/raw/$WOLF_CORE_BRANCH/.ci_templates/.install_core.yml' + - 'https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf/-/raw/$WOLF_CORE_BRANCH/.ci_templates/.preliminaries.yml' workflow: rules: @@ -34,110 +35,9 @@ stages: ## PRINT VARIABLES - *print_variables_definition - ## Install ssh-agent if not already installed, it is required by Docker. - ## (change apt-get to yum if you use an RPM-based image) - - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - - ## Run ssh-agent (inside the build environment) - - eval $(ssh-agent -s) - - ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store - ## We're using tr to fix line endings which makes ed25519 keys work - ## without extra base64 encoding. - ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556 - - mkdir -p ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - # - echo "$SSH_KNOWN_HOSTS" > $HOME/.ssh/known_hosts - - ssh-keyscan -H -p 2202 gitlab.iri.upc.edu >> $HOME/.ssh/known_hosts - - # update apt - - apt-get update - - # create 'ci_deps' folder (if not exists) - - mkdir -pv ci_deps - -# .license_header_template: &license_header_definition -# - cd $CI_PROJECT_DIR - -# # configure git -# - export CI_NEW_BRANCH=ci_processing$RANDOM -# - echo creating new temporary branch... $CI_NEW_BRANCH -# - git config --global user.email "${CI_EMAIL}" -# - git config --global user.name "${CI_USERNAME}" -# - git checkout -b $CI_NEW_BRANCH # temporary branch - -# # download license script -# - if [ -f /ci_deps/license_manager.sh ]; then -# - echo "File license_manager.sh already exists." -# - else -# - echo "Downloading file license_manager.sh..." -# - wget -P /ci_deps https://gitlab.iri.upc.edu/mobile_robotics/wolf_projects/wolf_lib/wolf/-/raw/$WOLF_CORE_BRANCH/wolf_scripts/license_manager.sh -# - fi - -# # license headers -# - export CURRENT_YEAR=$( date +'%Y' ) -# - echo "current year:" ${CURRENT_YEAR} -# - 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..." -# - source /ci_deps/license_manager.sh --add --path=. --config-path=. --exclude=ci_deps -# - else -# # remove license headers of all files -# - source /ci_deps/license_manager.sh --remove --path=. --config-path=. --exclude=ci_deps -# # update license header -# - 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 -# # add new license headers to all files -# - source /ci_deps/license_manager.sh --add --path=. --config-path=. --exclude=ci_deps -# - fi - -# # 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_yamlschemacpp_template: &install_yamlschemacpp_definition -# - cd ${CI_PROJECT_DIR}/ci_deps -# - if [ -d yaml-schema-cpp ]; then -# - echo "directory yaml-schema-cpp exists" -# - cd yaml-schema-cpp -# - git checkout main -# - git pull -# - else -# - git clone -b main ssh://git@gitlab.iri.upc.edu:2202/labrobotica/algorithms/yaml-schema-cpp.git -# - cd yaml-schema-cpp -# - fi -# - mkdir -pv build -# - cd build -# - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_TESTS=OFF .. -# - make -j$(nproc) -# - make install -# - ldconfig - -# .install_wolf_template: &install_wolf_definition -# - cd ${CI_PROJECT_DIR}/ci_deps -# - if [ -d wolf ]; then -# - echo "directory wolf exists" -# - cd wolf -# - git fetch --all -# - git checkout $WOLF_CORE_BRANCH -# - git pull -# - else -# - git clone -b $WOLF_CORE_BRANCH ssh://git@gitlab.iri.upc.edu:2202/mobile_robotics/wolf_projects/wolf_lib/wolf.git -# - cd wolf -# - fi -# - mkdir -pv build -# - cd build -# - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_DEMOS=OFF -DBUILD_TESTS=OFF .. -# - make -j$(nproc) -# - make install - + ## preliminaries script (ssh, apt update and mkdir ci_deps) + - !reference [.preliminaries_script] + .install_gnssutils_template: &install_gnssutils_definition - cd ${CI_PROJECT_DIR}/ci_deps - if [ -d gnss_utils ]; then