Skip to content

smathermather is building OpenMVS #1

smathermather is building OpenMVS

smathermather is building OpenMVS #1

name: Continuous Integration
run-name: ${{ github.actor }} is building OpenMVS
on:
push:
branches: [master, develop]
pull_request:
branches: [master, develop]
# Allows to run this workflow manually from the Actions tab
workflow_dispatch:
env:
CTEST_OUTPUT_ON_FAILURE: 1
defaults:
run:
shell: bash
jobs:
build-tests:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
include:
- os: windows-latest
triplet: x64-windows-release
build-type: Release
- os: ubuntu-latest
triplet: x64-linux-release
build-type: Release
- os: macos-latest
triplet: arm64-osx
build-type: Release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Restore artifacts, or setup vcpkg for building artifacts
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
vcpkgGitCommitId: '1de2026f28ead93ff1773e6e680387643e914ea1'
- name: Install Ubuntu dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update -y
sudo apt-get install -y autoconf-archive libxmu-dev libdbus-1-dev libxtst-dev libxi-dev libxinerama-dev libxcursor-dev xorg-dev libgl-dev libglu1-mesa-dev pkg-config ninja-build
- name: Install macOS dependencies
if: matrix.os == 'macOS-latest'
run: |
brew install automake autoconf autoconf-archive libtool ninja
- name: Configure CMake for Windows
if: matrix.os == 'windows-latest'
run: |
cmake -S . -B make -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} -DOpenMVS_USE_CUDA=OFF
- name: Configure CMake for Ubuntu and macOS
if: matrix.os != 'windows-latest'
run: |
cmake -S . -B make -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} -DOpenMVS_USE_CUDA=OFF -G Ninja
- name: Build
working-directory: ./make
run: |
rm -rf ../vcpkg/buildtrees
rm -rf ../vcpkg/downloads
cmake --build . --config ${{ matrix.build-type }} --parallel $(nproc)
- name: Unit Tests
working-directory: ./make
run: |
ctest -j$(nproc) --build-config ${{ matrix.build-type }}
- name: Deploy Windows release
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v3
with:
name: OpenMVS_Windows_Release_x64
path: |
${{ github.workspace }}/make/bin/**/x64
!${{ github.workspace }}/make/bin/**/*.exp