Fix typos in comment. #592
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' | |
- '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 |