From 1ced541dae3d2c3708fe6131810c4965f51566c8 Mon Sep 17 00:00:00 2001 From: alexv Date: Mon, 14 Aug 2017 11:51:20 +0900 Subject: [PATCH 1/4] now using ros_buildfarm --- .travis.yml | 82 ++++++++++++++++++++--------------------------------- 1 file changed, 30 insertions(+), 52 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9f7de74..9b135d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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_NAME=`basename $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/ + # 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_NAME $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 From 831f38412a84fde380f80e8b4f25c9b0ab458653 Mon Sep 17 00:00:00 2001 From: AlexV Date: Fri, 1 Sep 2017 11:54:31 +0900 Subject: [PATCH 2/4] changing repository name to match ros package name --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9b135d9..448583d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ install: # 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_NAME=`basename $TRAVIS_BUILD_DIR` + - export REPOSITORY_NAME=pyros_utils # 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/ From 01c1e7b60d50f418cad5752c87b456e6e26389f2 Mon Sep 17 00:00:00 2001 From: AlexV Date: Fri, 1 Sep 2017 12:15:04 +0900 Subject: [PATCH 3/4] fixing repo name in catkin_workspace --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 448583d..3251dfa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ install: - export REPOSITORY_NAME=pyros_utils # 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/ + - 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_NAME $OS_NAME $OS_CODE_NAME $ARCH > $JOB_PATH/devel_job.sh - cd $JOB_PATH From dc3734f4b1b57ae44b5ef7d0011277817def07bf Mon Sep 17 00:00:00 2001 From: alexv Date: Thu, 7 Sep 2017 18:24:33 +0900 Subject: [PATCH 4/4] attempting devel build without rosdistro --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3251dfa..d9e83b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,12 +20,12 @@ install: # 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_NAME=pyros_utils + - 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_NAME $OS_NAME $OS_CODE_NAME $ARCH > $JOB_PATH/devel_job.sh + - 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