Update developing.md #233
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| env: | |
| CI: true | |
| jobs: | |
| ci: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04, ubuntu-22.04-arm, macos-latest] | |
| build: [Release, Debug] | |
| fail-fast: false | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: apt update (Ubuntu) | |
| if: ${{ contains(matrix.os, 'ubuntu') }} | |
| run: sudo apt-get update | |
| - name: Cache APT packages (Ubuntu) | |
| if: ${{ contains(matrix.os, 'ubuntu') }} | |
| uses: awalsh128/cache-apt-pkgs-action@latest | |
| with: | |
| packages: libpcl-dev libeigen3-dev libsdl2-dev mpich | |
| version: pcl-cache-v1 | |
| execute_install_scripts: true | |
| - name: Set up Homebrew (MacOS) | |
| if: ${{ contains(matrix.os, 'macos') }} | |
| uses: Homebrew/actions/setup-homebrew@master | |
| - name: Cache Homebrew downloads (macOS) | |
| if: ${{ contains(matrix.os, 'macos') }} | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/Library/Caches/Homebrew | |
| key: homebrew-cache-${{ runner.os }}-${{ hashFiles('**/Brewfile') }} | |
| restore-keys: | | |
| homebrew-cache-${{ runner.os }}- | |
| - name: Brew update (MacOS) | |
| if: ${{ contains(matrix.os, 'macos') }} | |
| run: brew update | |
| - name: Fix Python Conflicts (MacOS) | |
| if: ${{ contains(matrix.os, 'macos') }} | |
| run: | | |
| brew unlink python@3.12 || true | |
| brew install python@3.12 || true | |
| brew link --overwrite --dry-run python@3.12 || true | |
| brew link --overwrite python@3.12 || true | |
| # Install Eigen (Cross-platform) | |
| - name: Install Eigen | |
| run: | | |
| if [[ "${{ matrix.os }}" == "macos-latest" || "${{ matrix.os }}" == "macos-14" ]]; then | |
| brew install eigen | |
| else | |
| sudo apt-get install -y libeigen3-dev | |
| fi | |
| # Install SDL2 (Cross-platform) | |
| - name: Install SDL2 | |
| run: | | |
| if [[ "${{ matrix.os }}" == "macos-latest" || "${{ matrix.os }}" == "macos-14" ]]; then | |
| brew install SDL2 | |
| else | |
| sudo apt-get install -y libsdl2-dev | |
| fi | |
| - name: Install PCL | |
| run: | | |
| if [[ "${{ matrix.os }}" == "macos-latest" || "${{ matrix.os }}" == "macos-14" ]]; then | |
| brew install pcl | |
| else | |
| sudo apt-get install mpich | |
| sudo apt-get install libpcl-dev | |
| fi | |
| # Install sdl-wrapper (Cross-platform) | |
| - name: Install sdl-wrapper | |
| run: | | |
| git clone https://github.com/cornellev/sdl-wrapper.git | |
| cd sdl-wrapper | |
| sudo make install | |
| # Install libcmdapp2 (Cross-platform) | |
| - name: Install libcmdapp2 | |
| run: | | |
| git clone https://github.com/cornellev/libcmdapp2.git | |
| cd libcmdapp2 | |
| sudo make install | |
| # Install libconfig (Cross-platform) | |
| - name: Install libconfig | |
| run: | | |
| git clone https://github.com/cornellev/config | |
| cd config | |
| sudo make install | |
| # Install simple-test (Cross-platform) | |
| - name: Install simple-test | |
| run: | | |
| git clone https://github.com/cornellev/simple-test | |
| cd simple-test | |
| sudo make install | |
| # Build all (Cross-platform) | |
| - name: Build all | |
| run: make OPT=${{ matrix.build }} | |
| # Run tests (Cross-platform) | |
| - name: Run tests | |
| run: make test_ply OPT=${{ matrix.build }} | |
| # Run benchmarks (Cross-platform) | |
| - name: Run benchmarks | |
| if: matrix.build == 'Release' | |
| run: make bench OPT=${{ matrix.build }} | |
| # Test install (Cross-platform) | |
| - name: Test install | |
| run: sudo make install |