diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index dde8b8e8fef..ae65b32b8d7 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -1,8 +1,55 @@ +resources: + containers: + - container: env1604 + image: pointcloudlibrary/env:16.04 + - container: doc + image: pointcloudlibrary/doc + jobs: + - job: ubuntu1604 + displayName: Ubuntu 16.04 Build + timeoutInMinutes: 0 + pool: + vmImage: 'Ubuntu 16.04' + container: env1604 + variables: + BUILD_DIR: '$(Agent.BuildDirectory)/build' + CMAKE_CXX_FLAGS: '-Wall -Wextra -Wabi -O2' + steps: + - script: | + mkdir $BUILD_DIR && cd $BUILD_DIR + cmake $(Build.SourcesDirectory) \ + -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ + -DPCL_ONLY_CORE_POINT_TYPES=ON \ + -DPCL_QT_VERSION=5 \ + -DBUILD_simulation=ON \ + -DBUILD_global_tests=ON \ + -DBUILD_examples=ON \ + -DBUILD_tools=ON \ + -DBUILD_apps=ON \ + -DBUILD_apps_3d_rec_framework=ON \ + -DBUILD_apps_cloud_composer=ON \ + -DBUILD_apps_in_hand_scanner=ON \ + -DBUILD_apps_modeler=ON \ + -DBUILD_apps_point_cloud_editor=ON + displayName: 'CMake Configuration' + - script: | + cd $BUILD_DIR + # Compiling some of the test targets with -j2 option leads to pipeline failures + # (presumably out of memory error). Thus we make them separately in a single + # thread mode. Their corresponding modules are built before with the -j2 mode + # to make the process faster. + cmake --build . -- -j2 pcl_filters pcl_registration + cmake --build . -- test_filters test_registration test_registration_api + cmake --build . -- -j2 + displayName: 'Build Library' + - script: cd $BUILD_DIR && cmake --build . -- tests + displayName: 'Run Unit Tests' - job: documentation displayName: Generate Documentation pool: vmImage: 'Ubuntu 16.04' + container: doc variables: BUILD_DIR: '$(Agent.BuildDirectory)/build' DOC_DIR: '$(Agent.BuildDirectory)/documentation' @@ -16,14 +63,6 @@ jobs: inputs: versionSpec: '3.6' addToPath: true - - script: | - sudo apt-get update - sudo apt-get install -y \ - libeigen3-dev libboost-filesystem-dev libboost-iostreams-dev \ - libboost-thread-dev libboost-chrono-dev doxygen-latex dvipng \ - libqhull-dev libflann-dev - pip install Jinja2==2.8.1 sphinx sphinxcontrib-doxylink - displayName: 'Install Dependencies' - script: | mkdir $BUILD_DIR && cd $BUILD_DIR cmake $(Build.SourcesDirectory) \ diff --git a/.travis.sh b/.travis.sh deleted file mode 100755 index 12d17191473..00000000000 --- a/.travis.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh - -PCL_DIR=`pwd` -BUILD_DIR=$PCL_DIR/build - -CMAKE_C_FLAGS="-Wall -Wextra -Wabi -O2" -CMAKE_CXX_FLAGS="-Wall -Wextra -Wabi -O2" - -if [ "$TRAVIS_OS_NAME" == "linux" ]; then - if [ "$CC" == "clang" ]; then - CMAKE_C_FLAGS="$CMAKE_C_FLAGS -Qunused-arguments" - CMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS -Qunused-arguments" - fi -fi - -function before_install () -{ - if [ "$TRAVIS_OS_NAME" == "linux" ]; then - if [ "$CC" == "clang" ]; then - sudo ln -s ../../bin/ccache /usr/lib/ccache/clang - sudo ln -s ../../bin/ccache /usr/lib/ccache/clang++ - fi - fi -} - -function build_all () -{ - # A complete build - # Configure - mkdir $BUILD_DIR && cd $BUILD_DIR - cmake -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ - -DPCL_ONLY_CORE_POINT_TYPES=ON \ - -DPCL_QT_VERSION=5 \ - -DBUILD_simulation=ON \ - -DBUILD_global_tests=OFF \ - -DBUILD_examples=ON \ - -DBUILD_tools=ON \ - -DBUILD_apps=ON \ - -DBUILD_apps_3d_rec_framework=ON \ - -DBUILD_apps_cloud_composer=ON \ - -DBUILD_apps_in_hand_scanner=ON \ - -DBUILD_apps_modeler=ON \ - -DBUILD_apps_point_cloud_editor=ON \ - $PCL_DIR - # Build - make -j2 -} - -function test_all () -{ - # A complete build - # Configure - mkdir $BUILD_DIR && cd $BUILD_DIR - cmake -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ - -DPCL_ONLY_CORE_POINT_TYPES=ON \ - -DPCL_QT_VERSION=4 \ - -DBUILD_simulation=ON \ - -DBUILD_global_tests=ON \ - -DBUILD_examples=OFF \ - -DBUILD_tools=OFF \ - -DBUILD_apps=OFF \ - $PCL_DIR - # Build - make -j2 tests -} - -case $1 in - before-install ) before_install;; - build ) build_all;; - test ) test_all;; -esac - diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3af638f4bf7..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,43 +0,0 @@ -sudo: required -dist: xenial -language: cpp -cache: - ccache: true -git: - depth: 1 -addons: - apt: - packages: - - cmake - - libboost-filesystem-dev - - libboost-iostreams-dev - - libboost-thread-dev - - libboost-chrono-dev - - libeigen3-dev - - libgtest-dev - - libusb-1.0-0-dev - - libqhull-dev - - libvtk6-dev - - libvtk6-qt-dev - - libflann-dev - - qtbase5-dev - - libqt5opengl5-dev - - libglew-dev - - libopenni-dev - - libproj-dev #missing dependency from vtk? -before_install: - - bash .travis.sh before-install - -jobs: - include: - - name: "Library, Examples, Tools, Apps" - compiler: clang - env: TASK="build" - script: bash .travis.sh $TASK - - name: "Unit Tests" - compiler: gcc - env: TASK="test" - script: bash .travis.sh $TASK - -notifications: - email: false diff --git a/README.md b/README.md index 27e2b127804..75508d7b83d 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Continuous integration [license-image]: https://img.shields.io/badge/license-BSD-green.svg?style=flat [license]: https://github.com/PointCloudLibrary/pcl/blob/master/LICENSE.txt -[![Build Status](https://travis-ci.com/PointCloudLibrary/pcl.svg?branch=master)](https://travis-ci.com/PointCloudLibrary/pcl) +[![Build Status](https://dev.azure.com/PointCloudLibrary/pcl/_apis/build/status/PointCloudLibrary.pcl)](https://dev.azure.com/PointCloudLibrary/pcl/_build/latest?definitionId=1) [![Build Status](https://ci.appveyor.com/api/projects/status/oiep6oktpmuap7qr/branch/master?svg=true)](https://ci.appveyor.com/project/PointCloudLibrary/pcl/branch/master) Description