Skip to content
Snippets Groups Projects
Commit df8e1702 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

Update .gitlab-ci.yml file

parent ef51371c
No related branches found
No related tags found
2 merge requests!3After cmake and const refactor,!1new release
stages:
- license
- build_and_test
- demos
############ YAML ANCHORS ############
.preliminaries_template: &preliminaries_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
# 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..."
- ./ci_deps/wolf/wolf_scripts/license_manager.sh --add --path=. --license-header=license_header_${CURRENT_YEAR}.txt --exclude=ci_deps
- 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
- ./ci_deps/wolf/wolf_scripts/license_manager.sh --update --path=. --license-header=license_header_${CURRENT_YEAR}.txt --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_wolf_template: &install_wolf_definition
- cd ${CI_PROJECT_DIR}/ci_deps
- if [ -d wolf ]; then
- echo "directory wolf exists"
- cd wolf
- git pull
- git checkout $WOLF_CORE_BRANCH
- else
- git clone ssh://git@gitlab.iri.upc.edu:2202/mobile_robotics/wolf_projects/wolf_lib/wolf.git
- cd wolf
- git checkout $WOLF_CORE_BRANCH
- fi
- mkdir -pv build
- cd build
- cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
- make -j$(nproc)
- ctest -j$(nproc)
- make install
.install_gnssutils_template: &install_gnssutils_definition
- cd ${CI_PROJECT_DIR}/ci_deps
- if [ -d gnss_utils ]; then
- echo "directory gnss_utils exists"
- cd gnss_utils
- git pull
- else
- git clone ssh://git@gitlab.iri.upc.edu:2202/mobile_robotics/gauss_project/gnss_utils.git
- cd gnss_utils
- git submodule update --init
- fi
- mkdir -pv build
- cd build
- cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
- make -j$(nproc)
- ctest -j$(nproc)
- make install
.install_wolfgnss_template: &install_wolfgnss_definition
- cd ${CI_PROJECT_DIR}/ci_deps
- if [ -d gnss ]; then
- echo "directory gnss exists"
- cd gnss
- git pull
- git checkout $WOLF_GNSS_BRANCH
- else
- git clone ssh://git@gitlab.iri.upc.edu:2202/mobile_robotics/wolf_projects/wolf_lib/gnss.git
- cd gnss
- git checkout $WOLF_GNSS_BRANCH
- fi
- mkdir -pv build
- cd build
- cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
- make -j$(nproc)
- ctest -j$(nproc)
- make install
.clone_wolfrosnode_template: &clone_wolfrosnode_definition
- echo "TODO clone wolf_ros_node branch ${WOLF_ROS_CORE_BRANCH}"
.build_and_test_template: &build_and_test_definition
- echo "TODO"
############ LICENSE HEADERS ############
license_headers:
stage: license
image: labrobotica/wolf_deps:16.04
cache:
- key: wolf-xenial
paths:
- ci_deps/wolf/
except:
- master
before_script:
- *preliminaries_definition
- *install_wolf_definition
script:
- *license_header_definition
############ UBUNTU 16.04 TEST ############
build_and_test:xenial:
stage: build_and_test
image: labrobotica/wolf_deps:16.04
cache:
- key: wolf-xenial
paths:
- ci_deps/wolf/
- key: gnssutils-xenial
paths:
- ci_deps/gnss_utils/
except:
- master
before_script:
- *preliminaries_definition
- *install_wolf_definition
- *install_wolfgnss_definition
- *clone_wolfrosnode_definition
script:
- *build_and_test_definition
############ UBUNTU 18.04 TEST ############
build_and_test:bionic:
stage: build_and_test
image: labrobotica/wolf_deps:18.04
cache:
- key: wolf-bionic
paths:
- ci_deps/wolf/
- key: gnssutils-bionic
paths:
- ci_deps/gnss_utils/
except:
- master
before_script:
- *preliminaries_definition
- *install_wolf_definition
- *install_wolfgnss_definition
- *clone_wolfrosnode_definition
script:
- *build_and_test_definition
############ RUN DEMOS ############
demo_gnss:
stage: demos
variables:
WOLF_CORE_BRANCH: $WOLF_CORE_BRANCH
WOLF_GNSS_BRANCH: $WOLF_GNSS_BRANCH
WOLF_ROS_CORE_BRANCH: $WOLF_ROS_CORE_BRANCH
WOLF_ROS_GNSS_BRANCH: $CI_COMMIT_BRANCH
trigger:
project: mobile_robotics/wolf_projects/wolf_ros/demos/wolf_demo_gnss
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment