diff --git a/.github/workflows/bionic_build.yml b/.github/workflows/bionic_build.yml deleted file mode 100644 index 18bb06e3..00000000 --- a/.github/workflows/bionic_build.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Bionic-Build - -on: - push: - branches: - - master - - feature/CommandLanguage - pull_request: - schedule: - - cron: '0 5 * * *' - -jobs: - industrial_ci: - name: Melodic - runs-on: ubuntu-latest - env: - CI_NAME: Bionic-Build - OS_NAME: ubuntu - OS_CODE_NAME: bionic - ROS_DISTRO: melodic - ROS_REPO: main - UPSTREAM_WORKSPACE: "dependencies_with_ext.rosinstall" - ROSDEP_SKIP_KEYS: "bullet bullet-extras opw_kinematics ros_industrial_cmake_boilerplate fcl ifopt taskflow" - DOCKER_IMAGE: "rosindustrial/tesseract:melodic" - PARALLEL_TESTS: false - CCACHE_DIR: "/home/runner/work/trajopt_ros/trajopt_ros/Bionic-Build/.ccache" - UPSTREAM_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Release" - TARGET_CMAKE_ARGS: "-DCMAKE_BUILD_TYPE=Debug -DTRAJOPT_ENABLE_TESTING=ON" - AFTER_SCRIPT: 'catkin build -w $target_ws --no-deps --verbose trajopt trajopt_ifopt trajopt_sco trajopt_sqp --make-args test' - steps: - - uses: actions/checkout@v1 - - - name: Free Disk Space - run: | - sudo swapoff -a - sudo rm -f /swapfile - sudo apt clean - docker rmi $(docker image ls -aq) - df -h - - - name: Prepare ccache timestamp - id: ccache_cache_timestamp - shell: cmake -P {0} - run: | - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) - message("::set-output name=timestamp::${current_date}") - - - name: ccache cache files - uses: actions/cache@v1.1.0 - with: - path: ${{ env.CI_NAME }}/.ccache - key: ${{ env.CI_NAME }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }} - restore-keys: | - ${{ env.CI_NAME }}-ccache- - - - uses: 'ros-industrial/industrial_ci@master' - env: ${{env}} diff --git a/.github/workflows/clang_format.yml b/.github/workflows/clang_format.yml index c10079b0..311f2a23 100644 --- a/.github/workflows/clang_format.yml +++ b/.github/workflows/clang_format.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - feature/CommandLanguage pull_request: schedule: - cron: '0 5 * * *' diff --git a/.github/workflows/focal_build.yml b/.github/workflows/focal_build.yml index f60e6d69..e1ccc29f 100644 --- a/.github/workflows/focal_build.yml +++ b/.github/workflows/focal_build.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - feature/CommandLanguage pull_request: schedule: - cron: '0 5 * * *' diff --git a/.github/workflows/windows_2019.yml b/.github/workflows/windows_2019.yml new file mode 100644 index 00000000..39070551 --- /dev/null +++ b/.github/workflows/windows_2019.yml @@ -0,0 +1,82 @@ +name: Windows-2019 + +on: + push: + branches: + - master + pull_request: + schedule: + - cron: '0 5 * * *' + +env: + VCPKG_PKGS: >- + fcl bullet3 octomap console-bridge eigen3 yaml-cpp benchmark tinyxml2 assimp orocos-kdl pcl lapack-reference jsoncpp boost-dll boost-filesystem boost-filesystem boost-serialization boost-program-options boost-graph + +jobs: + windows_ci: + name: Windows-2019 + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + with: + path: workspace/src/trajopt + + - name: checkout-vcpkg + uses: actions/checkout@v3 + with: + path: vcpkg + repository: microsoft/vcpkg + + - name: bootstrap-vcpkg + working-directory: vcpkg + run: bootstrap-vcpkg.bat + + - name: vcpkg-dry-run + working-directory: vcpkg + shell: cmd + run: | + vcpkg install --dry-run --triplet x64-windows-release ${{ env.VCPKG_PKGS }} > vcpkg_dry_run.txt + + - name: cache-vcpkg-archives + if: startsWith(github.ref, 'refs/tags/v') != true + id: cache-vcpkg-archives + uses: pat-s/always-upload-cache@v3 + with: + path: C:\Users\runneradmin\AppData\Local\vcpkg\archives + key: ${{ runner.os }}-x64-windows-release-vcpkg-${{ hashFiles('vcpkg/vcpkg_dry_run.txt') }}-main + restore-keys: | + ${{ runner.os }}-x64-windows-release-vcpkg- + + - name: install-depends + shell: cmd + run: | + vcpkg integrate install + python -m pip install vcstool -q + python -m pip install colcon-common-extensions -q + python -m pip install ninja -q + vcpkg install --triplet x64-windows-release ${{ env.VCPKG_PKGS }} + + - name: configure-msvc + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 + + - name: build-workspace + working-directory: workspace + shell: cmd + run: | + vcs import --input "${{ github.workspace }}/workspace/src/trajopt/dependencies.rosinstall" src/ + colcon build --packages-ignore trajopt_sqp trajopt_ifopt --event-handlers console_direct+ --cmake-args -G "Ninja" -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DTRAJOPT_ENABLE_TESTING=ON -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF + if %ERRORLEVEL% GEQ 1 exit 1 + + - name: run-test + working-directory: workspace + shell: cmd + run: | + call ./install/setup.bat + set PATH=%PATH%;C:/vcpkg/installed/x64-windows-release/bin + colcon test --packages-skip trajopt_sqp trajopt_ifopt --event-handlers console_direct+ --return-code-on-test-failure + if %ERRORLEVEL% GEQ 1 exit 1 + colcon test-result --verbose + if %ERRORLEVEL% GEQ 1 exit 1 + diff --git a/.github/workflows/windows_noetic_build.yml b/.github/workflows/windows_noetic_build.yml deleted file mode 100644 index 3fa42215..00000000 --- a/.github/workflows/windows_noetic_build.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Windows-Noetic-Build - -on: - push: - branches: - - master - - feature/CommandLanguage - pull_request: - schedule: - - cron: '0 5 * * *' - -jobs: - windows_ci: - name: Noetic - runs-on: windows-2019 - env: - ROS_DISTRO: noetic - steps: - - uses: actions/checkout@v2 - with: - submodules: recursive - path: src/trajopt_ros - - name: Build - shell: cmd - run: | - choco sources add -n=roswin -s https://aka.ms/ros/public --priority 1 - choco install ros-%ROS_DISTRO%-desktop_full -y --no-progress - - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 - call "C:\opt\ros\%ROS_DISTRO%\x64\setup.bat" - - set - - rosdep update - - vcs import --input "${{ github.workspace }}/src/trajopt_ros/dependencies_with_ext.rosinstall" src/ - - rosdep install -q --from-paths . --ignore-src -y - - catkin_make_isolated --install --use-nmake --force-cmake --only-pkg-with-deps trajopt trajopt_ifopt trajopt_sco trajopt_sqp trajopt_utils --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF -DINSTALL_FCL=ON -DINSTALL_BULLET=ON - - call "D:\a\trajopt_ros\trajopt_ros\install_isolated\setup.bat" - - catkin_make_isolated --install --use-nmake --force-cmake --pkg trajopt trajopt_sco --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_IPOPT=OFF -DBUILD_SNOPT=OFF -DTRAJOPT_ENABLE_TESTING=ON -DINSTALL_FCL=ON -DINSTALL_BULLET=ON diff --git a/dependencies.rosinstall b/dependencies.rosinstall index 5021efbd..223a54b5 100644 --- a/dependencies.rosinstall +++ b/dependencies.rosinstall @@ -1,16 +1,16 @@ - git: local-name: ros_industrial_cmake_boilerplate uri: https://github.com/ros-industrial/ros_industrial_cmake_boilerplate.git - version: master + version: 0.2.16 - git: local-name: tesseract uri: https://github.com/ros-industrial-consortium/tesseract.git - version: master + version: 0.9.11 - git: local-name: opw_kinematics uri: https://github.com/Jmeyer1292/opw_kinematics.git - version: master + version: 0.4.6 - git: local-name: ifopt uri: https://github.com/ethz-adrl/ifopt.git - version: master + version: 2.1.3 diff --git a/dependencies_with_ext.rosinstall b/dependencies_with_ext.rosinstall deleted file mode 100644 index 81063618..00000000 --- a/dependencies_with_ext.rosinstall +++ /dev/null @@ -1,20 +0,0 @@ -- git: - local-name: ros_industrial_cmake_boilerplate - uri: https://github.com/ros-industrial/ros_industrial_cmake_boilerplate.git - version: master -- git: - local-name: tesseract - uri: https://github.com/ros-industrial-consortium/tesseract.git - version: master -- git: - local-name: tesseract_ext - uri: https://github.com/ros-industrial-consortium/tesseract_ext.git - version: master -- git: - local-name: opw_kinematics - uri: https://github.com/Jmeyer1292/opw_kinematics.git - version: master -- git: - local-name: ifopt - uri: https://github.com/ethz-adrl/ifopt.git - version: master diff --git a/trajopt_ext/osqp/CMakeLists.txt b/trajopt_ext/osqp/CMakeLists.txt index d8bd825b..7df740b7 100644 --- a/trajopt_ext/osqp/CMakeLists.txt +++ b/trajopt_ext/osqp/CMakeLists.txt @@ -15,8 +15,12 @@ if(NOT ${osqp_FOUND}) SOURCE_DIR ${CMAKE_BINARY_DIR}/../trajopt_ext/osqp-src BINARY_DIR ${CMAKE_BINARY_DIR}/../trajopt_ext/osqp-build PATCH_COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/patch_osqp.cmake - CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE:STRING=Release - -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON) + CMAKE_CACHE_ARGS + -DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE:STRING=Release + -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON + -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE} + -DVCPKG_TARGET_TRIPLET:STRING=${VCPKG_TARGET_TRIPLET}) endif() install(FILES package.xml DESTINATION share/osqp) diff --git a/trajopt_ext/osqp_eigen/CMakeLists.txt b/trajopt_ext/osqp_eigen/CMakeLists.txt index 354efec7..647135ff 100644 --- a/trajopt_ext/osqp_eigen/CMakeLists.txt +++ b/trajopt_ext/osqp_eigen/CMakeLists.txt @@ -14,7 +14,11 @@ if(NOT ${OsqpEigen_FOUND}) GIT_TAG v0.6.3 SOURCE_DIR ${CMAKE_BINARY_DIR}/../trajopt_ext/osqp_eigen-src BINARY_DIR ${CMAKE_BINARY_DIR}/../trajopt_ext/osqp_eigen-build - CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE:STRING=Release) + CMAKE_CACHE_ARGS + -DCMAKE_INSTALL_PREFIX:STRING=${CMAKE_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE:STRING=Release + -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE} + -DVCPKG_TARGET_TRIPLET:STRING=${VCPKG_TARGET_TRIPLET}) endif()