From 836421c36f5b7ad1b54c9a6604906e43cfb2c971 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sat, 17 Oct 2020 15:35:53 -0700 Subject: [PATCH 1/4] Cleanup CI settings (#1518) --- .azure-pipelines.yml | 98 ++++++------ .github/workflows/ccpp.yml | 309 ++++++++++++++----------------------- 2 files changed, 171 insertions(+), 236 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 7f2dd45e18eee..0cf26b4f3a250 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -2,53 +2,57 @@ # Ref: https://docs.microsoft.com/en-us/azure/devops/pipelines jobs: -- job: xenial_gcc_debug - timeoutInMinutes: 120 - pool: - vmImage: 'ubuntu-16.04' - variables: - COMPILER: gcc - BUILD_TYPE: Debug - BUILD_DIR: $(Build.SourcesDirectory) - DOCKERFILE: Dockerfile.ubuntu-xenial - steps: - - template: .ci/azure-pipelines/docker.yml + - job: xenial_gcc_debug + timeoutInMinutes: 120 + pool: + vmImage: "ubuntu-20.04" + variables: + COMPILER: gcc + BUILD_TYPE: Debug + BUILD_DIR: $(Build.SourcesDirectory) + DOCKERFILE: Dockerfile.ubuntu-xenial + BUILD_DARTPY: OFF + steps: + - template: .ci/azure-pipelines/docker.yml -- job: bionic_gcc_debug - timeoutInMinutes: 120 - pool: - vmImage: 'ubuntu-16.04' - variables: - COMPILER: gcc - BUILD_TYPE: Debug - BUILD_DIR: $(Build.SourcesDirectory) - DOCKERFILE: Dockerfile.ubuntu-bionic - steps: - - template: .ci/azure-pipelines/docker.yml + - job: bionic_gcc_debug + timeoutInMinutes: 120 + pool: + vmImage: "ubuntu-20.04" + variables: + COMPILER: gcc + BUILD_TYPE: Debug + BUILD_DIR: $(Build.SourcesDirectory) + DOCKERFILE: Dockerfile.ubuntu-bionic + BUILD_DARTPY: ON + steps: + - template: .ci/azure-pipelines/docker.yml -- job: focal_gcc_debug - timeoutInMinutes: 120 - pool: - vmImage: 'ubuntu-16.04' - variables: - COMPILER: gcc - BUILD_TYPE: Debug - BUILD_DIR: $(Build.SourcesDirectory) - DOCKERFILE: Dockerfile.ubuntu-focal - steps: - - template: .ci/azure-pipelines/docker.yml + - job: focal_gcc_debug + timeoutInMinutes: 120 + pool: + vmImage: "ubuntu-20.04" + variables: + COMPILER: gcc + BUILD_TYPE: Debug + BUILD_DIR: $(Build.SourcesDirectory) + DOCKERFILE: Dockerfile.ubuntu-focal + BUILD_DARTPY: ON + steps: + - template: .ci/azure-pipelines/docker.yml -- job: catalina_clang_debug - timeoutInMinutes: 120 - pool: - vmImage: 'macOS-10.15' - variables: - BUILD_TYPE: Debug - BUILD_DIR: $(Build.SourcesDirectory) - steps: - - script: | - '.ci/install.sh' - displayName: 'Install' - - script: | - '.ci/script.sh' - displayName: 'Script' + - job: catalina_clang_debug + timeoutInMinutes: 120 + pool: + vmImage: "macOS-10.15" + variables: + BUILD_TYPE: Debug + BUILD_DIR: $(Build.SourcesDirectory) + BUILD_DARTPY: ON + steps: + - script: | + '.ci/install.sh' + displayName: "Install" + - script: | + '.ci/script.sh' + displayName: "Script" diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 31bfa19da4e0b..685a8ed95624b 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -5,231 +5,162 @@ name: C/C++ CI on: push: branches: - - '**' + - "**" pull_request: branches: - - '**' + - "**" schedule: # Run every day at 02:00 - - cron: '0 2 * * 0-6' + - cron: "0 2 * * 0-6" jobs: xenial_gcc_release: name: Ubuntu 16.04 [GCC|Release] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-xenial - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + - uses: actions/checkout@v1 + - name: Install Dependencies + env: + COMPILER: gcc + DOCKERFILE: Dockerfile.ubuntu-xenial + BUILD_TYPE: Release + BUILD_DARTPY: OFF + run: | + docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; + docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Build + run: | + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; bionic_gcc_release: name: Ubuntu 18.04 [GCC|Release] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-bionic - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; - - bionic_gcc_dartpy_release: - name: Ubuntu 18.04 [GCC|dartpy|Release] - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-bionic - BUILD_DARTPY: ON - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + - uses: actions/checkout@v1 + - name: Install Dependencies + env: + COMPILER: gcc + DOCKERFILE: Dockerfile.ubuntu-bionic + BUILD_TYPE: Release + BUILD_DARTPY: ON + run: | + docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; + docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Build + run: | + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; focal_gcc_release: name: Ubuntu 20.04 [GCC|Release] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-focal - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; - - focal_gcc_dartpy_release: - name: Ubuntu 20.04 [GCC|dartpy|Release] - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-focal - BUILD_DARTPY: ON - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + - uses: actions/checkout@v1 + - name: Install Dependencies + env: + COMPILER: gcc + DOCKERFILE: Dockerfile.ubuntu-focal + BUILD_TYPE: Release + BUILD_DARTPY: ON + run: | + docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; + docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Build + run: | + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; groovy_gcc_release: name: Ubuntu 20.10 [GCC|Release] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-groovy - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; - - groovy_gcc_dartpy_release: - name: Ubuntu 20.10 [GCC|dartpy|Release] - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-groovy - BUILD_DARTPY: ON - BUILD_TYPE: Release - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; - - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + - uses: actions/checkout@v1 + - name: Install Dependencies + env: + COMPILER: gcc + DOCKERFILE: Dockerfile.ubuntu-groovy + BUILD_TYPE: Release + BUILD_DARTPY: ON + run: | + docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; + docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Build + run: | + docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; catalina_clang_release: name: macOS 10.15 [Clang|Release] runs-on: macOS-10.15 steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: clang - run: .ci/install.sh - - name: Build - env: - COMPILER: clang - BUILD_TYPE: Release - run: sudo -E .ci/script.sh - - catalina_clang_dartpy_release: - name: macOS 10.15 [Clang|dartpy|Release] - runs-on: macOS-10.15 - steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: clang - BUILD_DARTPY: ON - run: .ci/install.sh - - name: Build - env: - COMPILER: clang - BUILD_TYPE: Release - BUILD_DARTPY: ON - run: sudo -E .ci/script.sh + - uses: actions/checkout@v1 + - name: Install Dependencies + env: + COMPILER: clang + run: .ci/install.sh + - name: Build + env: + COMPILER: clang + BUILD_TYPE: Release + BUILD_DARTPY: ON + run: sudo -E .ci/script.sh - windows_2019: - name: Windows [Release] + windows_2019_msvc: + name: Windows [MSVC|Release] runs-on: windows-2019 env: BUILD_TYPE: Release - VCPKG_ROOT: 'C:/dartsim/vcpkg' + VCPKG_ROOT: "C:/dartsim/vcpkg" VCPKG_BUILD_TAG: v0.2.0-70f192e steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - shell: cmd - run: | - mkdir -p C:\dartsim - choco install -y wget - wget -q https://github.com/dartsim/vcpkg-build/releases/download/%VCPKG_BUILD_TAG%/vcpkg-dartsim-dependencies.zip - unzip -qq vcpkg-dartsim-dependencies.zip -d C:\dartsim - - name: Build - shell: cmd - run: | - mkdir build - cd build - cmake .. -G "Visual Studio 16 2019" -A x64 -Wno-dev ^ - -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^ - -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake" ^ - -DDART_MSVC_DEFAULT_OPTIONS=ON ^ - -DDART_VERBOSE=ON - cmake --build . --target ALL_BUILD --parallel - ctest --output-on-fauilure + - uses: actions/checkout@v1 + - name: Install Dependencies + shell: cmd + run: | + mkdir -p C:\dartsim + choco install -y wget + wget -q https://github.com/dartsim/vcpkg-build/releases/download/%VCPKG_BUILD_TAG%/vcpkg-dartsim-dependencies.zip + unzip -qq vcpkg-dartsim-dependencies.zip -d C:\dartsim + - name: Build + shell: cmd + run: | + mkdir build + cd build + cmake .. -G "Visual Studio 16 2019" -A x64 -Wno-dev ^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^ + -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake" ^ + -DDART_MSVC_DEFAULT_OPTIONS=ON ^ + -DDART_VERBOSE=ON + cmake --build . --target ALL_BUILD --parallel + ctest --output-on-fauilure windows_2019_clang_cl: - name: Windows (clang-cl) [Release] + name: Windows [ClangCl|Release] runs-on: windows-2019 env: BUILD_TYPE: Release - VCPKG_ROOT: 'C:/dartsim/vcpkg' + VCPKG_ROOT: "C:/dartsim/vcpkg" VCPKG_BUILD_TAG: v0.2.0-70f192e steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - shell: cmd - run: | - mkdir -p C:\dartsim - choco install -y wget - wget -q https://github.com/dartsim/vcpkg-build/releases/download/%VCPKG_BUILD_TAG%/vcpkg-dartsim-dependencies.zip - unzip -qq vcpkg-dartsim-dependencies.zip -d C:\dartsim - - name: Build - shell: cmd - run: | - mkdir build - cd build - cmake .. -G "Visual Studio 16 2019" -A x64 -Wno-dev ^ - -T ClangCl ^ - -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^ - -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake" ^ - -DDART_MSVC_DEFAULT_OPTIONS=ON ^ - -DDART_VERBOSE=ON - cmake --build . --target ALL_BUILD --parallel - ctest --output-on-fauilure + - uses: actions/checkout@v1 + - name: Install Dependencies + shell: cmd + run: | + mkdir -p C:\dartsim + choco install -y wget + wget -q https://github.com/dartsim/vcpkg-build/releases/download/%VCPKG_BUILD_TAG%/vcpkg-dartsim-dependencies.zip + unzip -qq vcpkg-dartsim-dependencies.zip -d C:\dartsim + - name: Build + shell: cmd + run: | + mkdir build + cd build + cmake .. -G "Visual Studio 16 2019" -A x64 -Wno-dev ^ + -T ClangCl ^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^ + -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake" ^ + -DDART_MSVC_DEFAULT_OPTIONS=ON ^ + -DDART_VERBOSE=ON + cmake --build . --target ALL_BUILD --parallel + ctest --output-on-fauilure From 85a9b4940693561806740163066163e3e63e77ff Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sat, 17 Oct 2020 16:09:30 -0700 Subject: [PATCH 2/4] Merge 6.9.5 to master (#1517) Co-authored-by: Grey Co-authored-by: Steve Peters --- .ci/travis/docs_versions.txt | 2 +- CHANGELOG.md | 12 ++++++ .../optimizer/ipopt/BackwardCompatibility.hpp | 43 +++++++++++++++++++ dart/optimizer/ipopt/CMakeLists.txt | 12 ++++++ dart/optimizer/ipopt/IpoptSolver.cpp | 6 +-- dart/optimizer/ipopt/IpoptSolver.hpp | 12 ++++-- 6 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 dart/optimizer/ipopt/BackwardCompatibility.hpp diff --git a/.ci/travis/docs_versions.txt b/.ci/travis/docs_versions.txt index b5bc5d09eeeff..33fce2ce00d7f 100644 --- a/.ci/travis/docs_versions.txt +++ b/.ci/travis/docs_versions.txt @@ -1,5 +1,5 @@ DART 6 -v6.9.3 +v6.9.5 v6.8.5 v6.7.3 v6.6.2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 30722310d2f0a..061030c13d92f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -88,6 +88,18 @@ * Updated tutorial documentation and code to reflect new APIs: [#1481](https://github.com/dartsim/dart/pull/1481) +### [DART 6.9.5 (2020-10-17)](https://github.com/dartsim/dart/milestone/63?closed=1) + +* Optimization + + * Added Ipopt >= 3.13 support: [#1506](https://github.com/dartsim/dart/pull/1506) + +### [DART 6.9.4 (2020-08-30)](https://github.com/dartsim/dart/milestone/62?closed=1) + +* Build + + * Added support new if() IN_LIST operator in DARTConfig.cmake (6.9 backport): [#1494](https://github.com/dartsim/dart/pull/1494) + ### [DART 6.9.3 (2020-08-26)](https://github.com/dartsim/dart/milestone/61?closed=1) * Dynamics diff --git a/dart/optimizer/ipopt/BackwardCompatibility.hpp b/dart/optimizer/ipopt/BackwardCompatibility.hpp new file mode 100644 index 0000000000000..d5f4a633a3bd8 --- /dev/null +++ b/dart/optimizer/ipopt/BackwardCompatibility.hpp @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2011-2019, The DART development contributors + * All rights reserved. + * + * The list of contributors can be found at: + * https://github.com/dartsim/dart/blob/master/LICENSE + * + * This file is provided under the following "BSD-style" License: + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef DART_OPTIMIZER_IPOPT_BACKWARDCOMPATIBILITY_HPP_ +#define DART_OPTIMIZER_IPOPT_BACKWARDCOMPATIBILITY_HPP_ + +// clang-format off +#define IPOPT_VERSION_GE(x,y,z) \ + (IPOPT_VERSION_MAJOR > x || (IPOPT_VERSION_MAJOR >= x && \ + (IPOPT_VERSION_MINOR > y || (IPOPT_VERSION_MINOR >= y && \ + IPOPT_VERSION_PATCH >= z)))) +// clang-format on + +#endif // DART_OPTIMIZER_IPOPT_BACKWARDCOMPATIBILITY_HPP_ diff --git a/dart/optimizer/ipopt/CMakeLists.txt b/dart/optimizer/ipopt/CMakeLists.txt index e07ebfd594877..41b8b0769590e 100644 --- a/dart/optimizer/ipopt/CMakeLists.txt +++ b/dart/optimizer/ipopt/CMakeLists.txt @@ -28,6 +28,18 @@ dart_generate_include_header_file( ${header_names} ) +# Add definitions for the IpOpt version +string(REPLACE "." ";" ipopt_version_list ${IPOPT_VERSION}) +list(GET ipopt_version_list 0 IPOPT_VERSION_MAJOR) +list(GET ipopt_version_list 1 IPOPT_VERSION_MINOR) +list(GET ipopt_version_list 2 IPOPT_VERSION_PATCH) +target_compile_definitions(${target_name} + PUBLIC + IPOPT_VERSION_MAJOR=${IPOPT_VERSION_MAJOR} + IPOPT_VERSION_MINOR=${IPOPT_VERSION_MINOR} + IPOPT_VERSION_PATCH=${IPOPT_VERSION_PATCH} +) + # Install install( FILES ${hdrs} ${CMAKE_CURRENT_BINARY_DIR}/ipopt.hpp diff --git a/dart/optimizer/ipopt/IpoptSolver.cpp b/dart/optimizer/ipopt/IpoptSolver.cpp index d3749e4a304f8..63871e206fe34 100644 --- a/dart/optimizer/ipopt/IpoptSolver.cpp +++ b/dart/optimizer/ipopt/IpoptSolver.cpp @@ -84,12 +84,12 @@ bool IpoptSolver::solve() std::size_t freq = mProperties.mIterationsPerPrint; if (freq > 0) { - mIpoptApp->Options()->SetNumericValue("print_frequency_iter", freq); + mIpoptApp->Options()->SetIntegerValue("print_frequency_iter", freq); } else { - mIpoptApp->Options()->SetNumericValue( - "print_frequency_iter", std::numeric_limits::infinity()); + mIpoptApp->Options()->SetIntegerValue( + "print_frequency_iter", std::numeric_limits::max()); } // Intialize the IpoptApplication and process the options diff --git a/dart/optimizer/ipopt/IpoptSolver.hpp b/dart/optimizer/ipopt/IpoptSolver.hpp index a5b166a66ada5..f5c46419ef4cb 100644 --- a/dart/optimizer/ipopt/IpoptSolver.hpp +++ b/dart/optimizer/ipopt/IpoptSolver.hpp @@ -33,11 +33,17 @@ #ifndef DART_OPTIMIZER_IPOPT_IPOPTSOLVER_HPP_ #define DART_OPTIMIZER_IPOPT_IPOPTSOLVER_HPP_ -#include -#include - #include +#include "dart/optimizer/ipopt/BackwardCompatibility.hpp" +#if IPOPT_VERSION_GE(3, 13, 0) +# include +# include +#else +# include +# include +#endif + #include "dart/optimizer/Solver.hpp" namespace dart { From 2ef44daae5c67711a5d63f23b47235878f8f52cd Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 18 Oct 2020 03:18:10 -0700 Subject: [PATCH 3/4] Fix pytest run on CI (#1519) --- .azure-pipelines.yml | 6 +++--- .ci/install_osx.sh | 6 ++++-- .ci/script.sh | 10 ++++++---- python/dartpy/CMakeLists.txt | 3 +++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 0cf26b4f3a250..b2b2c2f594c29 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -24,7 +24,7 @@ jobs: BUILD_TYPE: Debug BUILD_DIR: $(Build.SourcesDirectory) DOCKERFILE: Dockerfile.ubuntu-bionic - BUILD_DARTPY: ON + BUILD_DARTPY: OFF steps: - template: .ci/azure-pipelines/docker.yml @@ -37,7 +37,7 @@ jobs: BUILD_TYPE: Debug BUILD_DIR: $(Build.SourcesDirectory) DOCKERFILE: Dockerfile.ubuntu-focal - BUILD_DARTPY: ON + BUILD_DARTPY: OFF steps: - template: .ci/azure-pipelines/docker.yml @@ -48,7 +48,7 @@ jobs: variables: BUILD_TYPE: Debug BUILD_DIR: $(Build.SourcesDirectory) - BUILD_DARTPY: ON + BUILD_DARTPY: OFF steps: - script: | '.ci/install.sh' diff --git a/.ci/install_osx.sh b/.ci/install_osx.sh index 7790041ea44ad..8cb165caad0f3 100755 --- a/.ci/install_osx.sh +++ b/.ci/install_osx.sh @@ -3,7 +3,7 @@ set -ex brew update > /dev/null brew bundle || brew bundle -brew install open-scene-graph --HEAD # install master branch until 3.7.0 is released +brew install open-scene-graph --HEAD # install master branch until 3.7.0 is released # pagmo2: build from source until https://github.com/esa/pagmo2/issues/445 is resolved brew install tbb @@ -18,4 +18,6 @@ git clone https://github.com/esa/pagmo2.git -b 'v2.15.0' --single-branch --depth make -j$(sysctl -n hw.logicalcpu) && make install -pip3 install -U numpy pytest +# Use pip for the default Python3 version +py_version=$(python3 -c "import sys; print('{}.{}'.format(sys.version_info[0], sys.version_info[1]))") +pip$py_version install -U numpy pytest diff --git a/.ci/script.sh b/.ci/script.sh index 1db6980e82d24..08c0a467446a0 100755 --- a/.ci/script.sh +++ b/.ci/script.sh @@ -54,9 +54,11 @@ else fi while getopts ":j:" opt; do case $opt in - j) num_threads="$OPTARG" + j) + num_threads="$OPTARG" ;; - \?) echo "Invalid option -$OPTARG" >& 2 + \?) + echo "Invalid option -$OPTARG" >&2 ;; esac done @@ -75,7 +77,7 @@ fi # Skip Xenial and Bionic in push builds if [ "$IS_PULL_REQUEST" = "false" ]; then if [ "$DOCKER_FILE" ]; then - exit 0; + exit 0 fi fi @@ -138,4 +140,4 @@ if [ "$RUN_INSTALL_TEST" = "ON" ]; then cmake .. make -j$num_threads fi -fi \ No newline at end of file +fi diff --git a/python/dartpy/CMakeLists.txt b/python/dartpy/CMakeLists.txt index 9594916f810b7..8d27f39662f41 100644 --- a/python/dartpy/CMakeLists.txt +++ b/python/dartpy/CMakeLists.txt @@ -81,6 +81,9 @@ if(TARGET dart-collision-ode) target_link_libraries(${pybind_module} PUBLIC dart-collision-ode) endif() +# Remove debug postfix for dartpy +set_target_properties(${pybind_module} PROPERTIES DEBUG_POSTFIX "") + # Get the path to the bind module set(PYBIND_MODULE $) From 7476d1663acbfdcf6971f32ac656b5000245d687 Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Sun, 18 Oct 2020 16:52:11 -0700 Subject: [PATCH 4/4] Use prebuilt Ubuntu Docker images for CIs (#1520) --- .azure-pipelines.yml | 6 +- .ci/azure-pipelines/docker.yml | 17 ++-- .ci/docker/Dockerfile.ubuntu-bionic | 1 - .ci/docker/Dockerfile.ubuntu-focal | 1 - .ci/docker/Dockerfile.ubuntu-groovy | 1 - .ci/docker/Dockerfile.ubuntu-trusty | 1 - .ci/docker/Dockerfile.ubuntu-xenial | 1 - .ci/docker/Dockerfile.ubuntu-xenial-32bit | 1 - .ci/install_linux.sh | 2 + .github/workflows/ccpp.yml | 118 +++++++++++----------- .travis.yml | 19 ++-- 11 files changed, 80 insertions(+), 88 deletions(-) delete mode 100644 .ci/docker/Dockerfile.ubuntu-bionic delete mode 100644 .ci/docker/Dockerfile.ubuntu-focal delete mode 100644 .ci/docker/Dockerfile.ubuntu-groovy delete mode 100644 .ci/docker/Dockerfile.ubuntu-trusty delete mode 100644 .ci/docker/Dockerfile.ubuntu-xenial delete mode 100644 .ci/docker/Dockerfile.ubuntu-xenial-32bit diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index b2b2c2f594c29..c9948354dbf85 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -10,7 +10,7 @@ jobs: COMPILER: gcc BUILD_TYPE: Debug BUILD_DIR: $(Build.SourcesDirectory) - DOCKERFILE: Dockerfile.ubuntu-xenial + DOCKER_NAME: dartsim/dart-dev:xenial-v6.10 BUILD_DARTPY: OFF steps: - template: .ci/azure-pipelines/docker.yml @@ -23,7 +23,7 @@ jobs: COMPILER: gcc BUILD_TYPE: Debug BUILD_DIR: $(Build.SourcesDirectory) - DOCKERFILE: Dockerfile.ubuntu-bionic + DOCKER_NAME: dartsim/dart-dev:bionic-v6.10 BUILD_DARTPY: OFF steps: - template: .ci/azure-pipelines/docker.yml @@ -36,7 +36,7 @@ jobs: COMPILER: gcc BUILD_TYPE: Debug BUILD_DIR: $(Build.SourcesDirectory) - DOCKERFILE: Dockerfile.ubuntu-focal + DOCKER_NAME: dartsim/dart-dev:focal-v6.10 BUILD_DARTPY: OFF steps: - template: .ci/azure-pipelines/docker.yml diff --git a/.ci/azure-pipelines/docker.yml b/.ci/azure-pipelines/docker.yml index 4d6661aceaef9..5e9ccf8f58290 100644 --- a/.ci/azure-pipelines/docker.yml +++ b/.ci/azure-pipelines/docker.yml @@ -2,11 +2,12 @@ parameters: numThreads: 4 steps: -- script: | - docker build -t ${DOCKERFILE,,} -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $(Build.SourcesDirectory):$(Build.SourcesDirectory) --env-file .ci/docker/env.list --name dart-docker ${DOCKERFILE,,}; - docker exec dart-docker /bin/sh -c "cd $(Build.SourcesDirectory) && ./.ci/install.sh"; - displayName: 'Install' -- script: | - docker exec dart-docker /bin/sh -c "cd $(Build.SourcesDirectory) && ./.ci/script.sh -j${{ parameters.numThreads }}"; - displayName: 'Script' + - script: docker pull $DOCKER_NAME + displayName: "Pull dev container" + - script: | + docker run \ + -v $(Build.SourcesDirectory):$(Build.SourcesDirectory) \ + --env-file .ci/docker/env.list \ + $DOCKER_NAME \ + /bin/sh -c "cd $(Build.SourcesDirectory) && ./.ci/script.sh -j${{ parameters.numThreads }}" + displayName: "Build" diff --git a/.ci/docker/Dockerfile.ubuntu-bionic b/.ci/docker/Dockerfile.ubuntu-bionic deleted file mode 100644 index 80043633f5b89..0000000000000 --- a/.ci/docker/Dockerfile.ubuntu-bionic +++ /dev/null @@ -1 +0,0 @@ -FROM ubuntu:bionic diff --git a/.ci/docker/Dockerfile.ubuntu-focal b/.ci/docker/Dockerfile.ubuntu-focal deleted file mode 100644 index 9cc9f1a394016..0000000000000 --- a/.ci/docker/Dockerfile.ubuntu-focal +++ /dev/null @@ -1 +0,0 @@ -FROM ubuntu:focal diff --git a/.ci/docker/Dockerfile.ubuntu-groovy b/.ci/docker/Dockerfile.ubuntu-groovy deleted file mode 100644 index 222908ec9d66e..0000000000000 --- a/.ci/docker/Dockerfile.ubuntu-groovy +++ /dev/null @@ -1 +0,0 @@ -FROM ubuntu:groovy diff --git a/.ci/docker/Dockerfile.ubuntu-trusty b/.ci/docker/Dockerfile.ubuntu-trusty deleted file mode 100644 index 331b7134384f1..0000000000000 --- a/.ci/docker/Dockerfile.ubuntu-trusty +++ /dev/null @@ -1 +0,0 @@ -FROM ubuntu:trusty diff --git a/.ci/docker/Dockerfile.ubuntu-xenial b/.ci/docker/Dockerfile.ubuntu-xenial deleted file mode 100644 index 96fa38bd48009..0000000000000 --- a/.ci/docker/Dockerfile.ubuntu-xenial +++ /dev/null @@ -1 +0,0 @@ -FROM ubuntu:xenial diff --git a/.ci/docker/Dockerfile.ubuntu-xenial-32bit b/.ci/docker/Dockerfile.ubuntu-xenial-32bit deleted file mode 100644 index 31b693281ad90..0000000000000 --- a/.ci/docker/Dockerfile.ubuntu-xenial-32bit +++ /dev/null @@ -1 +0,0 @@ -FROM i386/ubuntu:xenial diff --git a/.ci/install_linux.sh b/.ci/install_linux.sh index c66025175797f..4efaa79f10a76 100755 --- a/.ci/install_linux.sh +++ b/.ci/install_linux.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash set -ex +# TODO(JS): Remove this file once CODECOV and gh-page migrated to the Docker builds + # Sanity checks for required environment variables. if [ -z "$BUILD_DARTPY" ]; then echo "Info: Environment variable BUILD_DARTPY is unset. Using OFF by default." diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 685a8ed95624b..334441c1aa5b8 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -13,97 +13,93 @@ on: # Run every day at 02:00 - cron: "0 2 * * 0-6" +env: + # Hosted on: https://hub.docker.com/repository/docker/dartsim/dart-dev + DART_DEV_IMAGE: dartsim/dart-dev + UBUNTU_BUILD_CMD: | + docker run \ + -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \ + --env-file ./.ci/docker/env.list \ + $DART_DEV_IMAGE:$DOCKER_TAG \ + /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh" + jobs: xenial_gcc_release: name: Ubuntu 16.04 [GCC|Release] runs-on: ubuntu-20.04 + env: + DOCKER_TAG: xenial-v6.10 + COMPILER: gcc + BUILD_TYPE: Release + BUILD_DARTPY: OFF steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-xenial - BUILD_TYPE: Release - BUILD_DARTPY: OFF - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Check out the repo + uses: actions/checkout@v2 + - name: Pull dev container + run: docker pull ${{ env.DART_DEV_IMAGE }}:${{ env.DOCKER_TAG }} - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + run: ${{ env.UBUNTU_BUILD_CMD }} bionic_gcc_release: name: Ubuntu 18.04 [GCC|Release] runs-on: ubuntu-20.04 + env: + DOCKER_TAG: bionic-v6.10 + COMPILER: gcc + BUILD_TYPE: Release + BUILD_DARTPY: ON steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-bionic - BUILD_TYPE: Release - BUILD_DARTPY: ON - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Check out the repo + uses: actions/checkout@v2 + - name: Pull dev container + run: docker pull ${{ env.DART_DEV_IMAGE }}:${{ env.DOCKER_TAG }} - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + run: ${{ env.UBUNTU_BUILD_CMD }} focal_gcc_release: name: Ubuntu 20.04 [GCC|Release] runs-on: ubuntu-20.04 + env: + DOCKER_TAG: focal-v6.10 + COMPILER: gcc + BUILD_TYPE: Release + BUILD_DARTPY: ON steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-focal - BUILD_TYPE: Release - BUILD_DARTPY: ON - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Check out the repo + uses: actions/checkout@v2 + - name: Pull dev container + run: docker pull ${{ env.DART_DEV_IMAGE }}:${{ env.DOCKER_TAG }} - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + run: ${{ env.UBUNTU_BUILD_CMD }} groovy_gcc_release: name: Ubuntu 20.10 [GCC|Release] runs-on: ubuntu-20.04 + env: + DOCKER_TAG: groovy-v6.10 + COMPILER: gcc + BUILD_TYPE: Release + BUILD_DARTPY: ON steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - env: - COMPILER: gcc - DOCKERFILE: Dockerfile.ubuntu-groovy - BUILD_TYPE: Release - BUILD_DARTPY: ON - run: | - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --env-file ./.ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/install.sh"; + - name: Check out the repo + uses: actions/checkout@v2 + - name: Pull dev container + run: docker pull ${{ env.DART_DEV_IMAGE }}:${{ env.DOCKER_TAG }} - name: Build - run: | - docker exec dart-docker /bin/sh -c "cd $GITHUB_WORKSPACE && ./.ci/script.sh"; + run: ${{ env.UBUNTU_BUILD_CMD }} catalina_clang_release: name: macOS 10.15 [Clang|Release] runs-on: macOS-10.15 + env: + COMPILER: clang + BUILD_TYPE: Release + BUILD_DARTPY: ON steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Install Dependencies - env: - COMPILER: clang run: .ci/install.sh - name: Build - env: - COMPILER: clang - BUILD_TYPE: Release - BUILD_DARTPY: ON run: sudo -E .ci/script.sh windows_2019_msvc: @@ -114,7 +110,7 @@ jobs: VCPKG_ROOT: "C:/dartsim/vcpkg" VCPKG_BUILD_TAG: v0.2.0-70f192e steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Install Dependencies shell: cmd run: | @@ -143,7 +139,7 @@ jobs: VCPKG_ROOT: "C:/dartsim/vcpkg" VCPKG_BUILD_TAG: v0.2.0-70f192e steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Install Dependencies shell: cmd run: | diff --git a/.travis.yml b/.travis.yml index 43ad6f5ad4815..c55f8757c1a3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,32 +27,31 @@ matrix: - os: linux env: - - BUILD_NAME=XENIAL_32BIT_DEBUG_CODECOV - - DOCKERFILE="Dockerfile.ubuntu-xenial-32bit" + - BUILD_NAME=XENIAL_32BIT_RELEASE + - DOCKER_NAME=dartsim/dart-dev:xenial-32bit-v6.10 - BUILD_TYPE=Release # TODO: Tests fail in debug mode - COMPILER=gcc services: docker - os: linux env: - - BUILD_DOCS=ON - - DOCKERFILE="Dockerfile.ubuntu-bionic" + - BUILD_NAME=BIONIC_RELEASE_DOCS + - DOCKER_NAME=dartsim/dart-dev:bionic-docs - BUILD_TYPE=Release - COMPILER=gcc + - BUILD_DOCS=ON services: docker install: - - if [ -n "$DOCKERFILE" ]; then - docker build -t "${DOCKERFILE,,}" -f ".ci/docker/$DOCKERFILE" .; - docker run -itd -v $TRAVIS_BUILD_DIR:$TRAVIS_BUILD_DIR --env-file .ci/docker/env.list --name dart-docker "${DOCKERFILE,,}"; - docker exec dart-docker /bin/sh -c "cd $TRAVIS_BUILD_DIR && ./.ci/install.sh"; + - if [ -n "$DOCKER_NAME" ]; then + docker pull $DOCKER_NAME; else sudo -E .ci/install.sh; fi script: - - if [ -n "$DOCKERFILE" ]; then - docker exec dart-docker /bin/sh -c "cd $TRAVIS_BUILD_DIR && ./.ci/script.sh"; + - if [ -n "$DOCKER_NAME" ]; then + docker run -v $TRAVIS_BUILD_DIR:$TRAVIS_BUILD_DIR --env-file .ci/docker/env.list $DOCKER_NAME /bin/sh -c "cd $TRAVIS_BUILD_DIR && ./.ci/script.sh"; else sudo -E .ci/script.sh; fi