Use pip's "--dry-run" option to check if a dependency is missing or o… #465
Workflow file for this run
This file contains 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: 'Test build' | |
on: | |
push: | |
paths: | |
- '.github/workflows/test_build.yml' | |
- 'scons/**' | |
- 'cpp/**' | |
- 'python/**' | |
- 'doc/**' | |
jobs: | |
changes: | |
name: Detect changes | |
runs-on: ubuntu-latest | |
outputs: | |
cpp: ${{ steps.filter.outputs.cpp }} | |
cpp_tests: ${{ steps.filter.outputs.cpp_tests }} | |
python: ${{ steps.filter.outputs.python }} | |
python_tests: ${{ steps.filter.outputs.python_tests }} | |
doc: ${{ steps.filter.outputs.doc }} | |
any: ${{ steps.filter.outputs.any }} | |
steps: | |
- name: Look up Git repository in cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: .git/ | |
key: test-build-cache-git-${{ github.run_id }} | |
restore-keys: | | |
test-build-cache-git | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Detect changes | |
uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
cpp: &cpp | |
- 'scons/**' | |
- 'cpp/**/include/**' | |
- 'cpp/**/src/**' | |
- '**/*.pxd' | |
- '**/*.pyx' | |
- '**/meson.build' | |
cpp_tests: &cpp_tests | |
- *cpp | |
- 'cpp/**/test/**' | |
python: &python | |
- 'scons/**' | |
- 'python/requirements.txt' | |
- 'python/**/mlrl/**' | |
python_tests: &python_tests | |
- *python | |
- python/**/tests/** | |
doc: &doc | |
- 'scons/**' | |
- 'doc/**' | |
any: | |
- *cpp_tests | |
- *python_tests | |
- *doc | |
- name: Save Git repository to cache | |
uses: actions/cache/save@v3 | |
if: success() || failure() | |
with: | |
path: .git/ | |
key: test-build-cache-git-${{ github.run_id }} | |
linux_build: | |
needs: changes | |
if: ${{ needs.changes.outputs.any == 'true' }} | |
name: Test Linux build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Look up Git repository in cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: .git/ | |
key: test-build-cache-git-${{ github.run_id }} | |
restore-keys: | | |
test-build-cache-git | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install OpenCL | |
run: | | |
sudo apt update | |
sudo apt install -y opencl-headers ocl-icd-opencl-dev | |
- name: Install GoogleTest | |
run: sudo apt install -y googletest | |
- name: Look up build files in cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
venv/ | |
scons/build/ | |
cpp/build/ | |
python/**/cython/*.so* | |
python/**/build/ | |
python/**/dist/ | |
python/**/*egg-info/ | |
doc/_build/ | |
doc/_extra/ | |
doc/development/api/python/ | |
key: ${{ runner.os }}-test-build-cache-tmp-files-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-test-build-cache-tmp-files | |
- name: Test C++ code | |
if: ${{ needs.changes.outputs.cpp_tests == 'true' }} | |
run: ./build tests_cpp | |
- name: Test Python code | |
if: ${{ needs.changes.outputs.cpp == 'true' || needs.changes.outputs.python_tests == 'true' }} | |
run: ./build tests_python | |
- name: Install Doxygen | |
if: ${{ needs.changes.outputs.cpp == 'true' || needs.changes.outputs.doc == 'true' }} | |
uses: ssciwr/doxygen-install@v1 | |
- name: Generate C++ Apidoc | |
if: ${{ needs.changes.outputs.cpp == 'true' }} | |
run: ./build apidoc_cpp | |
- name: Generate Python Apidoc | |
if: ${{ needs.changes.outputs.python == 'true' }} | |
run: ./build apidoc_python | |
- name: Install Roboto font | |
if: ${{ needs.changes.outputs.doc == 'true' }} | |
run: sudo apt install -y fonts-roboto | |
- name: Generate Documentation | |
if: ${{ needs.changes.outputs.doc == 'true' }} | |
run: ./build doc | |
- name: Save build files to cache | |
uses: actions/cache/save@v3 | |
if: success() || failure() | |
with: | |
path: | | |
venv/ | |
scons/build/ | |
cpp/build/ | |
python/**/cython/*.so* | |
python/**/build/ | |
python/**/dist/ | |
python/**/*egg-info/ | |
doc/_build/ | |
doc/_extra/ | |
doc/development/api/python/ | |
key: ${{ runner.os }}-test-build-cache-tmp-files-${{ github.run_id }} | |
macos_build: | |
needs: changes | |
if: ${{ needs.changes.outputs.cpp == 'true' }} | |
name: Test MacOS build | |
runs-on: macos-latest | |
steps: | |
- name: Look up Git repository in cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: .git/ | |
key: test-build-cache-git-${{ github.run_id }} | |
restore-keys: | | |
test-build-cache-git | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install OpenMP | |
run: | | |
brew install libomp | |
brew link libomp --force | |
- name: Install OpenCL | |
run: brew install opencl-clhpp-headers | |
- name: Look up build files in cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
venv/ | |
scons/build/ | |
cpp/build/ | |
key: ${{ runner.os }}-test-build-cache-tmp-files-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-test-build-cache-tmp-files | |
- name: Compile via Clang | |
run: TEST_SUPPORT=disabled CPLUS_INCLUDE_PATH=/usr/local/opt/opencl-clhpp-headers/include ./build compile | |
- name: Save build files to cache | |
uses: actions/cache/save@v3 | |
if: success() || failure() | |
with: | |
path: | | |
venv/ | |
scons/build/ | |
cpp/build/ | |
key: ${{ runner.os }}-test-build-cache-tmp-files-${{ github.run_id }} | |
windows_build: | |
needs: changes | |
if: ${{ needs.changes.outputs.cpp == 'true' }} | |
name: Test Windows build | |
runs-on: windows-latest | |
steps: | |
- name: Look up Git repository in cache | |
uses: actions/cache/restore@v3 | |
with: | |
enableCrossOsArchive: true | |
path: .git/ | |
key: test-build-cache-git-${{ github.run_id }} | |
restore-keys: | | |
test-build-cache-git | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Remove conflicting link.exe | |
uses: JesseTG/[email protected] | |
with: | |
path: C:\Program Files\Git\usr\bin\link.EXE | |
- name: Install OpenCL | |
uses: johnwason/vcpkg-action@v5 | |
with: | |
pkgs: opencl | |
triplet: x64-windows | |
token: ${{ github.token }} | |
- name: Look up build files in cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
venv/ | |
scons/build/ | |
cpp/build/ | |
key: ${{ runner.os }}-test-build-cache-tmp-files-${{ github.run_id }} | |
restore-keys: | | |
${{ runner.os }}-test-build-cache-tmp-files | |
- name: Compile via MSVC | |
run: | | |
$env:TEST_SUPPORT = "disabled" | |
$env:INCLUDE += ";$($pwd.Path)\vcpkg\packages\opencl_x64-windows\include" | |
$env:LIB += ";$($pwd.Path)\vcpkg\packages\opencl_x64-windows\lib" | |
./build.bat compile | |
- name: Save build files to cache | |
uses: actions/cache/save@v3 | |
if: success() || failure() | |
with: | |
path: | | |
venv/ | |
scons/build/ | |
cpp/build/ | |
key: ${{ runner.os }}-test-build-cache-tmp-files-${{ github.run_id }} |