Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 30 additions & 52 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,59 +1,37 @@
sudo: required
language: generic
services:
- docker

branches:
except:
- gh-pages

# while this doesn't require sudo we don't want to run within a Docker container
sudo: true
dist: trusty
language: python
python:
- "3.4"
env:
global:
- CONTAINER_NAME=pyros_utils_docker
# This will check any ROS distro supported on this OS
# checking devel and install separately so that they don't influence each other (dependencies, path, env, etc.)
- JOB_PATH=/tmp/devel_job
matrix:
- ROS_DISTRO=indigo ROS_FLOW=devel
- ROS_DISTRO=indigo ROS_FLOW=install

- ROS_DISTRO=jade ROS_FLOW=devel
- ROS_DISTRO=jade ROS_FLOW=install

- ROS_DISTRO=kinetic ROS_FLOW=devel
- ROS_DISTRO=kinetic ROS_FLOW=install

before_install:
# Getting docker ros image
- docker pull ros:${ROS_DISTRO}-ros-core
# Running as daemon
- docker run --name ${CONTAINER_NAME} -d -t ros:${ROS_DISTRO}-ros-core /bin/bash | tee container.id
# Switching to use ros shadow fixed packages
- docker exec -ti ${CONTAINER_NAME} /bin/bash -c "sed -i.bak -e s,packages.ros.org/ros/ubuntu,packages.ros.org/ros-shadow-fixed/ubuntu, /etc/apt/sources.list.d/ros-latest.list"
# Checking current container
- docker ps -a
- docker exec -ti ${CONTAINER_NAME} hostname
- docker exec -ti ${CONTAINER_NAME} uname -a
- docker exec -ti ${CONTAINER_NAME} cat /etc/lsb-release

- ROS_DISTRO_NAME=indigo OS_NAME=ubuntu OS_CODE_NAME=trusty ARCH=amd64
- ROS_DISTRO_NAME=kinetic OS_NAME=ubuntu OS_CODE_NAME=xenial ARCH=amd64
- ROS_DISTRO_NAME=lunar OS_NAME=ubuntu OS_CODE_NAME=trusty ARCH=amd64
install:
# refreshing packages
- docker exec -ti ${CONTAINER_NAME} apt-get update
# TMP Patch because rosdep doesnt declare a dependency to sudo yet (2016-08-25) and it doesnt come with xenial
- docker exec -ti ${CONTAINER_NAME} apt-get install sudo -y
- docker exec -ti ${CONTAINER_NAME} rosdep update
# copying local clone to the running container (volume is currently broken)
- docker cp . ${CONTAINER_NAME}:/git_clone
# Installing package dependencies
- docker exec -ti ${CONTAINER_NAME} rosdep install --default-yes --from-paths /git_clone --rosdistro $ROS_DISTRO

# full ROS setup, build and test
# either install the latest released version of ros_buildfarm
- pip install ros_buildfarm
# or checkout a specific branch
#- git clone -b master https://github.com/ros-infrastructure/ros_buildfarm /tmp/ros_buildfarm
#- pip install /tmp/ros_buildfarm
# checkout catkin for catkin_test_results script
- git clone https://github.com/ros/catkin /tmp/catkin
# run devel job for a ROS repository with the same name as this repo
- export REPOSITORY="pyros_utils:git:file://$TRAVIS_BUILD_DIR"
# use the code already checked out by Travis
- mkdir -p $JOB_PATH/catkin_workspace/src
- cp -R $TRAVIS_BUILD_DIR $JOB_PATH/catkin_workspace/src/pyros_utils
# generate the script to run a devel job for that target and repo
- generate_devel_script.py https://raw.githubusercontent.com/ros-infrastructure/ros_buildfarm_config/production/index.yaml $ROS_DISTRO_NAME default $REPOSITORY $OS_NAME $OS_CODE_NAME $ARCH > $JOB_PATH/devel_job.sh
- cd $JOB_PATH
- cat devel_job.sh
# run the actual job which involves Docker
- sh devel_job.sh -y
script:
- CONTAINER_ID=$(cat container.id)
- docker ps -a
- docker exec -ti ${CONTAINER_NAME} /bin/bash -c "source /opt/ros/$ROS_DISTRO/setup.bash && rospack profile"
# Passing env vars here since passing in docker run currently breaks (2016-08-25)
- docker exec -ti ${CONTAINER_NAME} /bin/bash -c "export ROS_DISTRO=$ROS_DISTRO && export ROS_FLOW=$ROS_FLOW && /git_clone/travis_checks.bash"
- docker stop "${CONTAINER_ID}"

# get summary of test results
- /tmp/catkin/bin/catkin_test_results $JOB_PATH/catkin_workspace/test_results --all
notifications:
email: false