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

Add conda github action #495

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from
Draft
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
81 changes: 81 additions & 0 deletions .github/workflows/conda.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Conda

on:
push:
branches:
- master
- 'dev**'
pull_request:
release:
types:
- released

jobs:
conda-win:
runs-on: windows-2019
defaults:
run:
shell: powershell
steps:
- uses: actions/checkout@v3
with:
path: workspace/src/tesseract_planning
- name: install-depends
shell: cmd
run: |
python -m pip install vcstool -q
- name: vcs import
run: >
vcs import --input "${{ github.workspace }}/workspace/src/tesseract_planning/.github/workflows/windows_dependencies.repos" workspace/src/
- uses: conda-incubator/setup-miniconda@v3
with:
channel-priority: strict
environment-file: workspace/src/tesseract_planning/.github/workflows/conda/environment.yml
use-mamba: true
auto-update-conda: true
activate-environment: tesseract-build
- name: build and test
run: |
conda info
conda list
mkdir conda
xcopy /E workspace\src\tesseract_planning\.github\workflows\conda conda
cd conda
New-Item -Name conda-forge.yml -ItemType File
conda smithy regenerate

conda mambabuild -m .ci_support/win_64_.yaml --build-only .

conda-linux:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -el {0}
steps:
- uses: actions/checkout@v3
with:
path: workspace/src/tesseract_planning
- name: install-depends
run: |
python -m pip install vcstool -q
- name: vcs import
run: >
vcs import --input "${{ github.workspace }}/workspace/src/tesseract_planning/.github/workflows/windows_dependencies.repos" workspace/src/
- uses: conda-incubator/setup-miniconda@v3
with:
channel-priority: strict
environment-file: workspace/src/tesseract_planning/.github/workflows/conda/environment.yml
use-mamba: true
auto-update-conda: true
activate-environment: tesseract-build
- name: build and test
run: |
conda info
conda list

cp -r workspace/src/tesseract_planning/.github/workflows/conda ./conda
cd conda
touch conda-forge.yml
conda smithy regenerate

conda mambabuild -m .ci_support/linux_64_.yaml --build-only .
6 changes: 6 additions & 0 deletions .github/workflows/conda/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: tesseract-build
channels:
- conda-forge
dependencies:
- boa
- conda-smithy
5 changes: 5 additions & 0 deletions .github/workflows/conda/recipe/activate.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@if not defined CONDA_PREFIX goto:eof

@call "%CONDA_PREFIX%\opt\tesseract_robotics\setup.bat"

@set TESSERACT_PYTHON_DLL_PATH=%CONDA_PREFIX%\opt\tesseract_robotics\bin
1 change: 1 addition & 0 deletions .github/workflows/conda/recipe/activate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
source "${CONDA_PREFIX}/opt/tesseract_robotics/setup.sh"
45 changes: 45 additions & 0 deletions .github/workflows/conda/recipe/bld.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
set CXXFLAGS=%CXXFLAGS% -DEIGEN_DONT_ALIGN=1 -DEIGEN_DONT_VECTORIZE=1
set CXXFLAGS=%CXXFLAGS% /std:c++17

colcon build --merge-install --install-base="%PREFIX%\opt\tesseract_robotics" ^
--event-handlers console_cohesion+ desktop_notification- status- terminal_title- ^
--packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp ^
--cmake-args -GNinja -DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="/MD /O2 /Ob0 /Zi /DNDEBUG" ^
-DCMAKE_RELWITHDEBINFO_POSTFIX="" ^
-DBUILD_SHARED_LIBS=ON ^
-DUSE_MSVC_RUNTIME_LIBRARY_DLL=ON ^
-DBUILD_IPOPT=OFF ^
-DBUILD_SNOPT=OFF ^
-DCMAKE_PREFIX_PATH:PATH="%LIBRARY_PREFIX%" ^
-DTESSERACT_ENABLE_CLANG_TIDY=OFF ^
-DTESSERACT_ENABLE_CODE_COVERAGE=OFF ^
-DPYTHON_EXECUTABLE="%PREFIX%\python.exe" ^
-DTESSERACT_ENABLE_EXAMPLES=OFF ^
-DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF ^
-DTESSERACT_ENABLE_TESTING=OFF ^
-DTRAJOPT_ENABLE_TESTING=ON

if %errorlevel% neq 0 exit /b %errorlevel%

set TESSERACT_RESOURCE_PATH=%PREFIX%\opt\tesseract_robotics\share

colcon test --event-handlers console_direct+ desktop_notification- status- terminal_title- ^
--return-code-on-test-failure ^
--packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp tesseract_common ^
tesseract_collision tesseract_environment tesseract_geometry tesseract_kinematics tesseract_scene_graph ^
tesseract_srdf tesseract_state_solver tesseract_support tesseract_urdf tesseract_visualization ^
--merge-install --install-base="%PREFIX%\opt\tesseract_robotics"

if %errorlevel% neq 0 exit /b %errorlevel%

setlocal EnableDelayedExpansion

:: Copy the [de]activate scripts to %PREFIX%\etc\conda\[de]activate.d.
:: This will allow them to be run on environment activation.
for %%F in (activate deactivate) DO (
if not exist %PREFIX%\etc\conda\%%F.d mkdir %PREFIX%\etc\conda\%%F.d
copy %RECIPE_DIR%\%%F.bat %PREFIX%\etc\conda\%%F.d\%PKG_NAME%_%%F.bat
)

if %errorlevel% neq 0 exit /b %errorlevel%
33 changes: 33 additions & 0 deletions .github/workflows/conda/recipe/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
set -e

ln -s $BUILD_PREFIX/bin/x86_64-conda-linux-gnu-gcc $BUILD_PREFIX/bin/gcc

colcon build --merge-install --install-base="$PREFIX/opt/tesseract_robotics" \
--event-handlers console_cohesion+ \
--packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp \
--cmake-args -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_IPOPT=OFF \
-DBUILD_SNOPT=OFF \
-DCMAKE_PREFIX_PATH:PATH="$PREFIX" \
-DTESSERACT_ENABLE_CLANG_TIDY=OFF \
-DTESSERACT_ENABLE_CODE_COVERAGE=OFF \
-DTESSERACT_ENABLE_EXAMPLES=OFF \
-DTESSERACT_BUILD_TRAJOPT_IFOPT=OFF \
-DSETUPTOOLS_DEB_LAYOUT=OFF \
-DTESSERACT_ENABLE_TESTING=ON \
-DTRAJOPT_ENABLE_TESTING=ON

export TESSERACT_RESOURCE_PATH="$PREFIX/opt/tesseract_robotics/share"

colcon test --event-handlers console_direct+ \
--return-code-on-test-failure \
--packages-ignore gtest osqp osqp_eigen tesseract_examples trajopt_ifopt trajopt_sqp tesseract_common \
--merge-install --install-base="$PREFIX/opt/tesseract_robotics"


for CHANGE in "activate" "deactivate"
do
mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d"
cp "${RECIPE_DIR}/${CHANGE}.sh" "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh"
done
Empty file.
Empty file.
80 changes: 80 additions & 0 deletions .github/workflows/conda/recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package:
name: tesseract_planning
version: "0.1.0"

source:
path: ../../workspace

requirements:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- gtest
- gmock
- cmake
- ninja # [win]
- make # [linux]
- pkg-config
- colcon-common-extensions
- lcov
- {{ cdt('mesa-libgl-devel') }} # [linux]
- {{ cdt('mesa-dri-drivers') }} # [linux]
- git
host:
- libboost-devel
- eigen
- tinyxml2
- console_bridge
- assimp
- urdfdom
- fcl
- octomap
- orocos-kdl
- pcl
- gtest
- gmock
- pkg-config
- xz
- flann
- jsoncpp
- yaml-cpp
- bullet-cpp
- xorg-libx11 # [unix]
- xorg-libxext # [unix]
- blas
- osqp
- qpoases
- ompl
- taskflow
run:
- eigen
- tinyxml2
- console_bridge
- assimp
- urdfdom
- fcl
- octomap
- orocos-kdl
- pcl
- gtest
- gmock
- xz
- jsoncpp
- taskflow
- yaml-cpp
- bullet-cpp
- xorg-libx11 # [unix]
- xorg-libxext # [unix]
- blas
- osqp
- qpoases
- ompl
- taskflow

build:
skip: true # [py<37]
number: 0

about:
home: https://github.com/tesseract-robotics/tesseract_planning
summary: Tesseract robot motion planners
Loading