You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.4 KiB
81 lines
2.4 KiB
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: x64-osx |
|
build-type: Release |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
|
|
- name: Restore artifacts, or setup vcpkg for building artifacts |
|
uses: lukka/run-vcpkg@v11 |
|
with: |
|
vcpkgDirectory: '${{ github.workspace }}/vcpkg' |
|
vcpkgGitCommitId: '4a3c366f2d0d0eaf034bfa649124768df7cfe813' |
|
|
|
- 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 |
|
|
|
- name: Install macOS dependencies |
|
if: matrix.os == 'macOS-latest' |
|
run: | |
|
brew install automake autoconf-archive |
|
|
|
- name: Configure CMake |
|
run: | |
|
cmake -S . -B make -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} -DOpenMVS_USE_CUDA=OFF |
|
|
|
- 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
|
|
|