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

MacOS / Ubuntu CI for ViSP namespace #1443

Merged
merged 6 commits into from
Jul 22, 2024
Merged
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
82 changes: 82 additions & 0 deletions .github/workflows/macos-linux-namespace.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: MacOS-Linux-Namespace

# https://www.jeffgeerling.com/blog/2020/running-github-actions-workflow-on-schedule-and-other-events
on:
pull_request:
types: [opened, reopened, synchronize]

# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre#comment133398800_72408109
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
build-macos:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "macos-latest"]
build_type: [Release]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install dependencies on macos-latest
if: matrix.os == 'macos-latest'
run: |
brew install libpng libjpeg-turbo libdc1394 opencv pcl librealsense zbar nlohmann-json

- name: Install dependencies on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update && sudo apt-get install -y libjpeg-dev libpng-dev libopencv-dev libpcl-dev libx11-dev liblapack-dev libeigen3-dev libv4l-dev libzbar-dev libpthread-stubs0-dev libdc1394-dev nlohmann-json3-dev

- name: Clone visp-images
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
# https://remarkablemark.org/blog/2022/09/25/check-git-branch-exists-in-remote-repository/
run: |
git clone --depth 1 https://github.com/lagadic/visp-images ${HOME}/visp-images
echo "VISP_INPUT_IMAGE_PATH=$HOME/visp-images" >> $GITHUB_ENV
echo ${VISP_INPUT_IMAGE_PATH}

# Openblas location is exported explicitly because openblas is keg-only,
# which means it was not symlinked into /usr/local/.
- name: Configure CMake
if: matrix.os == 'macos-latest'
run: |
export LDFLAGS="-L/usr/local/opt/openblas/lib"
export CPPFLAGS="-I/usr/local/opt/openblas/include"
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/usr/local -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_VISP_NAMESPACE=ON -DENABLE_EXPLICIT_KEYWORD=ON -DBUILD_DEPRECATED_FUNCTIONS=OFF
cat ViSP-third-party.txt

- name: Configure CMake
if: matrix.os == 'ubuntu-latest'
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/usr/local -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_VISP_NAMESPACE=ON -DENABLE_EXPLICIT_KEYWORD=ON -DBUILD_DEPRECATED_FUNCTIONS=OFF
cat ViSP-third-party.txt

- name: Determine number of processor on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: |
echo "NPROC=$(nproc)" >> $GITHUB_ENV

- name: Determine number of processor on MacOS
if: matrix.os == 'macos-latest'
run: |
echo "NPROC=$(sysctl -n hw.logicalcpu)" >> $GITHUB_ENV

- name: Compile
working-directory: build
run: make -j${NPROC} install

- name: Run unit tests
working-directory: build
run: ctest -j${NPROC} --output-on-failure -V
Loading