Update #5876
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: Builds | |
on: | |
push: | |
pull_request: | |
branches: | |
- main | |
# Cancel existing jobs on new pushes. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
# All the different build/test jobs. | |
jobs: | |
# Native build jobs. | |
native: | |
# The different build modes to test. | |
strategy: | |
matrix: | |
BUILD_TYPE: ["Debug"] | |
PLATFORM: | |
- OS: "ubuntu-latest" | |
GENERATOR: "Unix Makefiles" | |
- OS: "macos-latest" | |
GENERATOR: "Xcode" | |
# The system to run on. | |
runs-on: ${{ matrix.PLATFORM.OS }} | |
name: "native (${{ matrix.PLATFORM.OS }})" | |
# The build/test steps to execute. | |
steps: | |
# Use a standard checkout of the code. | |
- uses: actions/checkout@v4 | |
# Run the CMake configuration. | |
- name: Configure | |
run: cmake --preset full-fp64 | |
-DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} | |
-DDETRAY_FAIL_ON_WARNINGS=ON | |
-S ${{ github.workspace }} -B build | |
-G "${{ matrix.PLATFORM.GENERATOR }}" | |
# Perform the build. | |
- name: Build | |
run: cmake --build build --config ${{ matrix.BUILD_TYPE }} -- -j 2 | |
# Containerised build jobs. | |
host-container: | |
# The different build modes to test. | |
strategy: | |
matrix: | |
BUILD_TYPE: ["Release", "Debug"] | |
SCALAR_TYPE: ["float", "double"] | |
PLATFORM: | |
- NAME: "HOST" | |
CXX_STANDARD: "20" | |
CONTAINER: "ghcr.io/acts-project/ubuntu2404:56" | |
OPTIONS: -DDETRAY_EIGEN_PLUGIN=ON -DDETRAY_SMATRIX_PLUGIN=ON -DDETRAY_VC_AOS_PLUGIN=ON -DDETRAY_VC_SOA_PLUGIN=ON | |
# The system to run on. | |
runs-on: ubuntu-latest | |
container: ${{ matrix.PLATFORM.CONTAINER }} | |
name: "host-container (${{ matrix.PLATFORM.NAME }}, C++${{ matrix.PLATFORM.CXX_STANDARD }})" | |
# Use BASH as the shell from the image. | |
defaults: | |
run: | |
shell: bash | |
# Set the path to the test data files | |
env: | |
DETRAY_DATA_DIRECTORY: ${{ github.workspace }}/data/ | |
DETRAY_BFIELD_FILE: ${{ github.workspace }}/data/odd-bfield_v0_9_0.cvf | |
# The build/test steps to execute. | |
steps: | |
# Use a standard checkout of the code. | |
- uses: actions/checkout@v4 | |
# Get the data files for the tests | |
- name: Download data files | |
run: data/detray_data_get_files.sh | |
# Run the CMake configuration. | |
- name: Configure | |
run: | | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
cmake --preset full-fp32 \ | |
-DCMAKE_CXX_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
-DDETRAY_BUILD_BENCHMARKS=OFF \ | |
-DDETRAY_FAIL_ON_WARNINGS=ON \ | |
-DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \ | |
-DDETRAY_CUSTOM_SCALARTYPE=${{ matrix.SCALAR_TYPE }} \ | |
${{ matrix.PLATFORM.OPTIONS }} \ | |
-S ${GITHUB_WORKSPACE} \ | |
-B build | |
# Perform the build. | |
- name: Build | |
run: | | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
cmake --build build -- -j $(nproc) | |
# Run the unit test(s). | |
- name: Full Test | |
if: "matrix.BUILD_TYPE == 'Release'" | |
run: | | |
cd build | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
ctest --output-on-failure | |
- name: Unit Tests | |
if: "matrix.BUILD_TYPE == 'Debug'" | |
run: | | |
cd build | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
ctest -R detray_unit_test_. -E ._eigen --output-on-failure | |
# Containerised build jobs. | |
device-container: | |
# The different build modes to test. | |
strategy: | |
matrix: | |
BUILD_TYPE: ["Debug"] | |
SCALAR_TYPE: ["float", "double"] | |
PLATFORM: | |
- NAME: "CUDA" | |
CXX_STANDARD: "20" | |
CONTAINER: "ghcr.io/acts-project/ubuntu2404_cuda:66" | |
OPTIONS: -DDETRAY_BUILD_CUDA=ON -DDETRAY_EIGEN_PLUGIN=ON -DDETRAY_SMATRIX_PLUGIN=OFF -DDETRAY_VC_AOS_PLUGIN=OFF -DDETRAY_VC_SOA_PLUGIN=OFF | |
- NAME: "SYCL" | |
CXX_STANDARD: "20" | |
CONTAINER: "ghcr.io/acts-project/ubuntu2404_oneapi:56" | |
OPTIONS: -DDETRAY_BUILD_CUDA=OFF -DDETRAY_BUILD_SYCL=ON -DDETRAY_EIGEN_PLUGIN=ON -DDETRAY_SMATRIX_PLUGIN=OFF -DDETRAY_VC_AOS_PLUGIN=OFF -DDETRAY_VC_SOA_PLUGIN=OFF | |
# The system to run on. | |
runs-on: ubuntu-latest | |
container: ${{ matrix.PLATFORM.CONTAINER }} | |
name: "device-container (${{ matrix.PLATFORM.NAME }}, C++${{ matrix.PLATFORM.CXX_STANDARD }})" | |
# Use BASH as the shell from the image. | |
defaults: | |
run: | |
shell: bash | |
# The build/test steps to execute. | |
steps: | |
# Use a standard checkout of the code. | |
- uses: actions/checkout@v4 | |
# Run the CMake configuration. | |
- name: Configure | |
run: | | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
cmake --preset full-fp32 \ | |
-DCMAKE_CXX_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
-DCMAKE_CUDA_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
-DCMAKE_SYCL_STANDARD=${{ matrix.PLATFORM.CXX_STANDARD }} \ | |
-DDETRAY_BUILD_HOST=OFF \ | |
-DDETRAY_FAIL_ON_WARNINGS=ON \ | |
-DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \ | |
-DDETRAY_CUSTOM_SCALARTYPE=${{ matrix.SCALAR_TYPE }} \ | |
${{ matrix.PLATFORM.OPTIONS }} \ | |
-S ${GITHUB_WORKSPACE} \ | |
-B build | |
# Perform the build. | |
- name: Build | |
run: | | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh ${{ matrix.PLATFORM.NAME }} | |
cmake --build build | |
- name: FP64 Compliance | |
if: "matrix.PLATFORM.NAME == 'CUDA' && matrix.BUILD_TYPE == 'Debug' && matrix.SCALAR_TYPE == 'float'" | |
continue-on-error: true | |
run: ${GITHUB_WORKSPACE}/.github/find_f64_ptx.py --source ${GITHUB_WORKSPACE} --build build $(find build -name "*.ptx" ! -name "container_cuda_kernel.ptx") | |
benchmark-build: | |
# The system to run on. | |
runs-on: ubuntu-latest | |
container: ghcr.io/acts-project/ubuntu2204_cuda:56 | |
name: "gitlab-benchmark" | |
# Use BASH as the shell from the image. | |
defaults: | |
run: | |
shell: bash | |
# The build/test steps to execute. | |
steps: | |
# Use a standard checkout of the code. | |
- uses: actions/checkout@v4 | |
# Run the CMake configuration. | |
- name: Configure | |
run: | | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh CUDA | |
cmake --preset gitlab-benchmark \ | |
-S ${GITHUB_WORKSPACE} \ | |
-B build | |
# Perform the build. | |
- name: Build | |
run: | | |
source ${GITHUB_WORKSPACE}/.github/ci_setup.sh CUDA | |
cmake --build build |