Skip to content

Fix typos in comment. #592

Fix typos in comment.

Fix typos in comment. #592

Workflow file for this run

name: 'Test build'
on:
push:
paths:
- '.github/workflows/test_build.yml'
- 'build'
- 'build.bat'
- '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: |
build_files: &build_files
- '.github/workflows/test_build.yml'
- 'build'
- 'build.bat'
- 'scons/**'
cpp: &cpp
- *build_files
- 'cpp/**/include/**'
- 'cpp/**/src/**'
- '**/*.pxd'
- '**/*.pyx'
- '**/meson.build'
cpp_tests: &cpp_tests
- *cpp
- 'cpp/**/test/**'
python: &python
- *build_files
- 'python/requirements.txt'
- 'python/**/mlrl/**'
python_tests: &python_tests
- *python
- *cpp_tests
- 'python/**/tests/**'
doc: &doc
- *build_files
- '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: Prepare ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ runner.os }}-test-build-ccache
- name: Compile via GCC
if: ${{ needs.changes.outputs.cpp == 'true' }}
run: ./build compile_cpp
- name: Upload libraries as an artifact
if: ${{ needs.changes.outputs.cpp == 'true' }}
uses: actions/upload-artifact@v4
with:
name: libs-linux-x86_64
path: |
cpp/build/subprojects/**/lib*.so*
!cpp/build/subprojects/**/*.p
if-no-files-found: error
- name: Test C++ code
if: ${{ needs.changes.outputs.cpp_tests == 'true' }}
run: ./build tests_cpp
- name: Publish C++ test results
if: ${{ needs.changes.outputs.cpp_tests == 'true' }} && (success() || failure())
uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: "C++ Test Results"
files: |
cpp/build/meson-logs/testlog.junit.xml
- name: Test Python code
if: ${{ needs.changes.outputs.python_tests == 'true' }}
run: ./build tests_python
- name: Publish Python test results
if: ${{ needs.changes.outputs.python_tests == 'true' }} && (success() || failure())
uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: "Python Test Results"
files: |
python/build/test-results/*.xml
- 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: Upload documentation as an artifact
if: ${{ needs.changes.outputs.doc == 'true' }}
uses: actions/upload-artifact@v4
with:
name: doc
path: doc/_build/**/*
if-no-files-found: error
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: Prepare ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ runner.os }}-test-build-ccache
- name: Compile via Clang
run: TEST_SUPPORT=disabled CPLUS_INCLUDE_PATH=/usr/local/opt/opencl-clhpp-headers/include ./build compile
- name: Upload libraries as an artifact
uses: actions/upload-artifact@v4
with:
name: libs-macos-x86_64
path: cpp/build/subprojects/**/*.dylib
if-no-files-found: error
windows_build:
needs: changes
if: ${{ needs.changes.outputs.cpp == 'true' }}
name: Test Windows build
runs-on: windows-latest
env:
SCCACHE_GHA_ENABLED: "true"
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: Prepare sccache
uses: mozilla-actions/[email protected]
- 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: Upload libraries as an artifact
uses: actions/upload-artifact@v4
with:
name: libs-windows-amd64
path: |
cpp/build/subprojects/**/mlrl*.lib
cpp/build/subprojects/**/*.dll
if-no-files-found: error