-
Notifications
You must be signed in to change notification settings - Fork 3
144 lines (125 loc) · 4.4 KB
/
Copy pathdvr-course-cpp-ci.yml
File metadata and controls
144 lines (125 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: dvr-course-cpp CI
on:
push:
branches: [ main, ci ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04, macos-15, windows-2022]
config: [Release, Debug]
cuda: [ON, OFF]
interactive: [ON, OFF]
rtcore: [ON, OFF]
exclude:
- os: macos-15
cuda: ON
- os: windows-2022
cuda: ON
name: OS ${{ matrix.os }} - config ${{ matrix.config }} - CUDA ${{ matrix.cuda }}
steps:
- uses: actions/checkout@v3
- name: Add NVIDIA package repositories
if: >-
matrix.os == 'ubuntu-24.04' &&
matrix.cuda == 'ON'
run: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /"
sudo apt update
- name: Install CUDA
if: >-
matrix.os == 'ubuntu-24.04' &&
matrix.cuda == 'ON'
run: sudo apt-get install -y cuda-toolkit-12-6
- name: Setup CUDA
if: >-
matrix.os == 'ubuntu-24.04' &&
matrix.cuda == 'ON'
run: |
echo "/usr/local/cuda-12.6/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH" >> $GITHUB_ENV
- name: Install apt packages
if: matrix.os == 'ubuntu-24.04'
run: sudo apt install -y libxi-dev libxmu-dev libxrandr-dev libgl1-mesa-dev
- name: Checkout ANARI-SDK
uses: actions/checkout@v3
with:
repository: KhronosGroup/ANARI-SDK
path: ${{ github.workspace }}/ANARI-SDK
ref: next_release
- name: Configure ANARI-SDK
run: >
cmake ${{ github.workspace }}/ANARI-SDK -B ${{ github.workspace }}/ANARI-SDK_build
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/opt
-DCMAKE_BUILD_TYPE=Release
-DBUILD_EXAMPLES:BOOL=OFF
-DBUILD_VIEWER:BOOL=OFF
-DBUILD_HELIDE_DEVICE:BOOL=OFF
-DINSTALL_VIEWER_LIBRARY:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
- name: Build and install ANARI-SDK
run: >
cmake --build ${{ github.workspace }}/ANARI-SDK_build --config ${{ matrix.config }} --target install
- name: Checkout OWL
if: >-
matrix.rtcore == 'ON' &&
matrix.cuda == 'ON'
uses: actions/checkout@v3
with:
repository: NVIDIA/OWL
path: ${{ github.workspace }}/OWL
ref: main
- name: Configure OWL
if: >-
matrix.rtcore == 'ON' &&
matrix.cuda == 'ON'
run: >
cmake ${{ github.workspace }}/OWL -B ${{ github.workspace }}/OWL_build
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/opt
-DCMAKE_BUILD_TYPE=Release
- name: Build and install OWL
if: >-
matrix.rtcore == 'ON' &&
matrix.cuda == 'ON'
run: >
cmake --build ${{ github.workspace }}/OWL_build --config ${{ matrix.config }} --target install
- name: Checkout fakeOWL
if: >-
matrix.rtcore == 'ON' &&
matrix.cuda == 'OFF'
uses: actions/checkout@v3
with:
repository: szellmann/fakeOWL
path: ${{ github.workspace }}/fakeOWL
submodules: true
ref: main
- name: Configure fakeOWL
if: >-
matrix.rtcore == 'ON' &&
matrix.cuda == 'OFF'
run: >
cmake ${{ github.workspace }}/fakeOWL -B ${{ github.workspace }}/fakeOWL_build
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/opt
-DCMAKE_BUILD_TYPE=Release
- name: Build and install fakeOWL
if: >-
matrix.rtcore == 'ON' &&
matrix.cuda == 'OFF'
run: >
cmake --build ${{ github.workspace }}/fakeOWL_build --config ${{ matrix.config }} --target install
- name: Configure
env:
CMAKE_PREFIX_PATH: ${{ github.workspace }}/opt
run: >
cmake -LA -B ${{ github.workspace }}/build
-DCMAKE_BUILD_TYPE=${{ matrix.config }}
-DDVR_COURSE_PIPELINE_INTERACTIVE=${{ matrix.interactive }}
-DDVR_COURSE_WITH_OWL=${{ matrix.rtcore }}
- name: Build
run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.config }}