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

Fix Travis CI builds #524

Merged
merged 12 commits into from
Jul 19, 2019
4 changes: 2 additions & 2 deletions .ci/before_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

set -ex

if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/before_install_linux.sh";
if [ "${USE_CATKIN}" = "ON" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/before_install_catkin.sh";
fi
File renamed without changes.
10 changes: 8 additions & 2 deletions .ci/docker/env.list
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@ TRAVIS
TRAVIS_PULL_REQUEST
TRAVIS_OS_NAME
TRAVIS_BUILD_DIR
TRAVIS_REPO_SLUG

CODECOV_TOKEN
DISTRIBUTION
GITHUB_TOKEN
REPOSITORY

BUILD_AIKIDOPY
BUILD_NAME
BUILD_TYPE
CATKIN_CONFIG_OPTIONS
DISTRIBUTION
REPOSITORY
SUDO
USE_CATKIN
21 changes: 21 additions & 0 deletions .ci/docker/ubuntu-disco
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM ubuntu:disco

# Workaround to suppress "Warning: apt-key output should not be parsed (stdout is not a terminal)"
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1

RUN apt-get update -qq

# To run dpkg without interactive dialogue
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get install -y \
build-essential \
cmake \
curl \
git \
lsb-release \
pkg-config \
python \
software-properties-common \
sudo \
tzdata
13 changes: 13 additions & 0 deletions .ci/docker/ubuntu-trusty
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM ubuntu:trusty

RUN apt-get update -qq
RUN apt-get install -y \
build-essential \
cmake \
curl \
git \
lsb-release \
pkg-config \
python \
software-properties-common \
sudo
6 changes: 5 additions & 1 deletion .ci/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@
set -ex

if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/install_linux.sh"
if [ "${USE_CATKIN}" = "ON" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/install_linux_catkin.sh"
else
. "${TRAVIS_BUILD_DIR}/.ci/install_linux_cmake.sh"
fi
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/install_macos.sh"
fi
2 changes: 1 addition & 1 deletion .ci/install_linux.sh → .ci/install_linux_catkin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ cp -r "${TRAVIS_BUILD_DIR}" src
./scripts/internal-distro.py --workspace=src distribution.yml --repository "${REPOSITORY}" ${REQUIRED_ONLY}

if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
sudo apt-get install clang-format-3.8
sudo apt-get install -y clang-format-3.8
fi
66 changes: 66 additions & 0 deletions .ci/install_linux_cmake.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/usr/bin/env bash

set -ex

$SUDO apt-get -qq update
$SUDO apt-get -y install lsb-release software-properties-common
if [ $(lsb_release -sc) = "trusty" ]; then
$SUDO apt-add-repository -y ppa:libccd-debs/ppa
$SUDO apt-add-repository -y ppa:fcl-debs/ppa
fi
$SUDO apt-add-repository -y ppa:dartsim/ppa
$SUDO apt-get -qq update

# Build tools
$SUDO apt-get -y install \
sudo \
build-essential \
cmake \
pkg-config \
curl \
git
if [ $COMPILER = clang ]; then
$SUDO apt-get -qq -y install clang
fi

# Required dependencies
$SUDO apt-get -y install \
libboost-filesystem-dev \
libdart6-all-dev \
libompl-dev

# Optional dependencies
$SUDO apt-get -y install \
libtinyxml2-dev \
libyaml-cpp-dev

if [ "$BUILD_AIKIDOPY" = "ON" ]; then
$SUDO apt-get -y install python3-dev python3-numpy
$SUDO apt-get -y install python3-pip -y
$SUDO pip3 install pytest -U

if [ $(lsb_release -sc) = "trusty" ] || [ $(lsb_release -sc) = "xenial" ] || [ $(lsb_release -sc) = "bionic" ]; then
git clone https://github.com/pybind/pybind11 -b 'v2.3.0' --single-branch --depth 1
cd pybind11
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF
make -j4
$SUDO make install
cd ../..
elif [ $(lsb_release -sc) = "cosmic" ] || [ $(lsb_release -sc) = "disco" ]; then
$SUDO apt-get -y install pybind11-dev python3 libpython3-dev python3-pytest \
python3-distutils
else
echo -e "$(lsb_release -sc) is not supported."
exit 1
fi
fi

if [ $BUILD_DOCS = "ON" ]; then
$SUDO apt-get -qq -y install doxygen
fi

if [ $BUILD_NAME = TRUSTY_FULL_DEBUG ]; then
sudo apt-get install -y clang-format-3.8
fi
8 changes: 4 additions & 4 deletions .ci/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

set -ex

if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/script_linux.sh"
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/script_macos.sh"
if [ "${USE_CATKIN}" = "ON" ]; then
. "${TRAVIS_BUILD_DIR}/.ci/script_catkin.sh"
else
. "${TRAVIS_BUILD_DIR}/.ci/script_cmake.sh"
fi
File renamed without changes.
2 changes: 1 addition & 1 deletion .ci/script_macos.sh → .ci/script_cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

set -ex

unset -f cd; # Disable rvm ovveride of cd (see https://github.com/travis-ci/travis-ci/issues/8703)
unset -f cd; # Disable rvm override of cd (see https://github.com/travis-ci/travis-ci/issues/8703)

mkdir build
cd build
Expand Down
98 changes: 82 additions & 16 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dist: trusty
dist: xenial
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Xenial build still has an issue: #363

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double-check that this is still an issue in CI, since I believe in the launch scripts I forced it to pull OMPL 1.0 rather than 1.2 to get around this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


sudo: required

Expand All @@ -21,68 +21,134 @@ matrix:
- os: linux
compiler: gcc
env:
- BUILD_NAME=TRUSTY_RELEASE
- BUILD_NAME=TRUSTY_CATKIN_RELEASE
- DOCKER_FILE="ubuntu-trusty"
- REQUIRED_ONLY=--required-only
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
compiler: gcc
env:
- BUILD_NAME=TRUSTY_FULL_DEBUG
- BUILD_NAME=TRUSTY_CATKIN_FULL_DEBUG
- DOCKER_FILE="ubuntu-trusty"
- BUILD_TYPE=Debug
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
compiler: gcc
env:
- BUILD_NAME=TRUSTY_FULL_RELEASE
- BUILD_NAME=TRUSTY_CATKIN_FULL_RELEASE
- DOCKER_FILE="ubuntu-trusty"
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
env:
- BUILD_NAME=XENIAL_FULL_RELEASE
- BUILD_NAME=XENIAL_CATKIN_FULL_RELEASE
- DOCKER_FILE="ubuntu-xenial"
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
env:
- BUILD_NAME=BIONIC_FULL_RELEASE
- BUILD_NAME=BIONIC_CATKIN_FULL_RELEASE
- DOCKER_FILE="ubuntu-bionic"
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
env:
- BUILD_NAME=BIONIC_CMAKE_RELEASE
- DOCKER_FILE="ubuntu-bionic"
- BUILD_TYPE=Release
- USE_CATKIN=OFF
services: docker

- os: linux
env:
- BUILD_NAME=DISCO_CMAKE_RELEASE
- DOCKER_FILE="ubuntu-disco"
- BUILD_TYPE=Release
- USE_CATKIN=OFF
services: docker

- os: osx
osx_image: xcode9.3
osx_image: xcode11
compiler: clang
env:
- BUILD_NAME=XCODE93_RELEASE
- BUILD_NAME=XCODE11_CMAKE_RELEASE
- BUILD_TYPE=Release
- USE_CATKIN=OFF

- os: linux
compiler: gcc
env:
- BUILD_NAME=DOCS
- DOCKER_FILE="ubuntu-bionic"
- BUILD_TYPE=Release
- USE_CATKIN=ON
services: docker

allow_failures:
- os: linux
compiler: gcc
env:
- BUILD_NAME=XENIAL_FULL_RELEASE
- DOCKER_FILE="ubuntu-xenial"
- BUILD_NAME=TRUSTY_CATKIN_RELEASE
- DOCKER_FILE="ubuntu-trusty"
- REQUIRED_ONLY=--required-only
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
compiler: gcc
env:
- BUILD_NAME=BIONIC_FULL_RELEASE
- DOCKER_FILE="ubuntu-bionic"
- BUILD_NAME=TRUSTY_CATKIN_FULL_DEBUG
- DOCKER_FILE="ubuntu-trusty"
- BUILD_TYPE=Debug
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
compiler: gcc
env:
- BUILD_NAME=TRUSTY_CATKIN_FULL_RELEASE
- DOCKER_FILE="ubuntu-trusty"
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker
- os: osx
osx_image: xcode9.3
compiler: clang

- os: linux
env:
- BUILD_NAME=XENIAL_CATKIN_FULL_RELEASE
- DOCKER_FILE="ubuntu-xenial"
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

- os: linux
env:
- BUILD_NAME=XCODE93_RELEASE
- BUILD_NAME=BIONIC_CATKIN_FULL_RELEASE
- DOCKER_FILE="ubuntu-bionic"
- BUILD_TYPE=Release
- CATKIN_CONFIG_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DTREAT_WARNINGS_AS_ERRORS=ON"
- USE_CATKIN=ON
services: docker

before_install:
- if [ -n "$DOCKER_FILE" ]; then
Expand Down
20 changes: 20 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
brew 'boost'
brew 'dartsim'
brew 'eigen'
brew 'libmicrohttpd'
brew 'ompl'
brew 'tinyxml2'
brew 'yaml-cpp'

# Install dartsim dependencies explicitly because, for some unknown reasons,
# Travis CI + Homebrew fails to find the dartsim dependencies.
brew 'assimp'
brew 'boost'
brew 'bullet'
brew 'console_bridge'
brew 'eigen'
brew 'fcl'
brew 'flann'
brew 'ipopt'
brew 'libccd'
brew 'nlopt'
brew 'octomap'
brew 'ode'
brew 'open-scene-graph'
brew 'tinyxml2'
brew 'urdfdom'
brew 'urdfdom_headers'
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
* Constraint

* Added SequentialSampleable: [#393](https://github.com/personalrobotics/aikido/pull/393)
* Changed deprecated DART call in InverseKinematics: [#524](https://github.com/personalrobotics/aikido/pull/524)

* Control

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ execution on real robots.
AIKIDO depends on [ROS]. You should [install ROS](http://wiki.ros.org/indigo/Installation/Ubuntu) by adding the ROS repository to your `sources.list` as follows. We encourage users to install [`indigo`](http://wiki.ros.org/indigo).
```shell
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt-get update
$ sudo apt-get install ros-indigo-actionlib ros-indigo-geometry-msgs ros-indigo-interactive-markers ros-indigo-roscpp ros-indigo-std-msgs ros-indigo-tf ros-indigo-trajectory-msgs ros-indigo-visualization-msgs
```
Expand Down
23 changes: 23 additions & 0 deletions include/aikido/common/detail/memory-impl.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#ifndef AIKIDO_COMMON_DETAIL_MEMORY_IMPL_HPP_
#define AIKIDO_COMMON_DETAIL_MEMORY_IMPL_HPP_

#include "aikido/common/memory.hpp"

namespace aikido {
namespace common {

//==============================================================================
template<typename T, typename... Args>
::std::unique_ptr<T> make_unique(Args&&... args)
{
#if __cplusplus < 201300
return ::std::unique_ptr<T>(new T(::std::forward<Args>(args)...));
#else
return ::std::make_unique<T>(::std::forward<Args>(args)...);
#endif
}

} // namespace common
} // namespace aikido

#endif // AIKIDO_COMMON_DETAIL_MEMORY_IMPL_HPP_
Loading