diff --git a/.github/workflows/conda/conda-env.yml b/.github/workflows/conda/conda-env.yml new file mode 100644 index 0000000..cef866c --- /dev/null +++ b/.github/workflows/conda/conda-env.yml @@ -0,0 +1,17 @@ + +name: pinocchio-rerun +channels: + - conda-forge +dependencies: + - python + - cmake + - ninja + - cxx-compiler + - ccache + - gtest + - pinocchio + - eigen + - rerun-sdk + - librerun-sdk + - fmt + - example-robot-data diff --git a/.github/workflows/linux-conda.yml b/.github/workflows/linux-conda.yml new file mode 100644 index 0000000..5b1a6dc --- /dev/null +++ b/.github/workflows/linux-conda.yml @@ -0,0 +1,113 @@ +name: CI on Linux via Conda + +on: + push: + branches: + - main + paths-ignore: + - '*.md' + - '.gitignore' + pull_request: + paths-ignore: + - '*.md' + - '.gitignore' + +defaults: + run: + shell: bash -el {0} + +jobs: + pinocchio-rerun-conda: + name: ${{ matrix.os }} - Python ${{ matrix.python-version }} ${{ matrix.build_type }} + runs-on: ${{ matrix.os }} + + env: + CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" + CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 + + strategy: + fail-fast: false + matrix: + os: ["ubuntu-latest"] + build_type: [Release, Debug] + python-version: ["3.10", "3.11", "3.12"] + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Checkout pinocchio-visualizers + uses: actions/checkout@v4 + with: + repository: ManifoldFR/pinocchio-visualizers + submodules: recursive + path: ./visualizers + + - uses: actions/cache@v4 + with: + path: .ccache + key: ccache-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ github.sha }} + restore-keys: ccache-conda-${{ matrix.os }}-${{ matrix.build_type }}- + + - uses: conda-incubator/setup-miniconda@v3 + with: + activate-environment: pinrerun + auto-update-conda: true + environment-file: .github/workflows/conda/conda-env.yml + python-version: ${{ matrix.python-version }} + + - name: Build pinocchio-visualizers + run: | + cd ./visualizers + conda activate pinrerun + mkdir build && cd build + + cmake .. \ + -GNinja \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + cmake --build . --target install + + - name: Build pinrerun + run: | + conda activate pinrerun + + mkdir build && cd build + + cmake .. \ + -GNinja \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ + -DPYTHON_EXECUTABLE=$(which python3) \ + -DBUILD_PYTHON_INTERFACE=ON \ + -DBUILD_DOCUMENTATION=OFF \ + -DGENERATE_PYTHON_STUBS=ON + cmake --build . + ctest --output-on-failure + cmake --install . + + - name: Uninstall pinrerun + run: | + conda activate pinrerun + cd build + cmake --build . --target uninstall + + check: + if: always() + name: check-linux-conda + + needs: + - pinocchio-rerun-conda + + runs-on: ubuntu-latest + + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c4bf0e..d6aa782 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.18) set(PROJECT_NAME septum) -set(PROJECT_URL "https://github.com/ManifoldFR/pin-viz-cpp") +set(PROJECT_URL "https://github.com/ManifoldFR/pinocchio-rerun") set(PROJECT_DESCRIPTION "A C++-based visualizer for Pinocchio using rerun") set(PROJECT_CUSTOM_HEADER_EXTENSION "hpp") set(PROJECT_VERSION 0.1.0)