Skip to content

Commit d951c06

Browse files
[CI] Consolidated Build Variation Tests
Different build variations of VTR were being run on different CI runners which was wasteful. Consolidated these build variations into a single job which will run on a single runner.
1 parent eb58578 commit d951c06

File tree

1 file changed

+88
-30
lines changed

1 file changed

+88
-30
lines changed

.github/workflows/test.yml

Lines changed: 88 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,93 @@ jobs:
157157
./.github/scripts/build.sh
158158
159159
160+
# This test builds different variations of VTR (with different CMake Params)
161+
# and ensures that they can run the basic regression tests. This also ensures
162+
# that these build variations are warning clean.
163+
BuildVariations:
164+
runs-on: ubuntu-24.04
165+
strategy:
166+
name: 'B: Build Variations'
167+
env:
168+
# For the CI, we want all build variations to be warning clean.
169+
# NOTE: Need to turn IPO off due to false warnings being produced.
170+
COMMON_CMAKE_PARAMS: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off'
171+
steps:
172+
173+
- uses: actions/setup-python@v5
174+
with:
175+
python-version: 3.12.3
176+
177+
- uses: actions/checkout@v4
178+
with:
179+
submodules: 'true'
180+
181+
- name: 'Get number of CPU cores'
182+
uses: SimenB/github-actions-cpu-cores@v2
183+
id: cpu-cores
184+
185+
- name: 'Install dependencies'
186+
run: ./.github/scripts/install_dependencies.sh
187+
188+
- name: 'ccache'
189+
uses: hendrikmuhs/[email protected]
190+
191+
- name: 'Test with VTR_ASSERT_LEVEL 4'
192+
if: success() || failure()
193+
env:
194+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVTR_ASSERT_LEVEL=4"
195+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
196+
run: |
197+
rm -f build/CMakeCache.txt
198+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
199+
make -j${{ steps.cpu-cores.outputs.count}}
200+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
201+
202+
- name: 'Test with NO_GRAPHICS'
203+
if: success() || failure()
204+
env:
205+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVPR_USE_EZGL=off"
206+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
207+
run: |
208+
rm -f build/CMakeCache.txt
209+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
210+
make -j${{ steps.cpu-cores.outputs.count}}
211+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
212+
213+
- name: 'Test with NO_SERVER'
214+
if: success() || failure()
215+
env:
216+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVPR_USE_SERVER=off"
217+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
218+
run: |
219+
rm -f build/CMakeCache.txt
220+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
221+
make -j${{ steps.cpu-cores.outputs.count}}
222+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
223+
224+
- name: 'Test with CAPNPROTO disabled'
225+
if: success() || failure()
226+
env:
227+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVTR_ENABLE_CAPNPROTO=off"
228+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
229+
run: |
230+
rm -f build/CMakeCache.txt
231+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
232+
make -j${{ steps.cpu-cores.outputs.count}}
233+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
234+
235+
- name: 'Test with serial VPR_EXECUTION_ENGINE'
236+
if: success() || failure()
237+
env:
238+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVPR_EXECUTION_ENGINE=serial -DTATUM_EXECUTION_ENGINE=serial"
239+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
240+
run: |
241+
rm -f build/CMakeCache.txt
242+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
243+
make -j${{ steps.cpu-cores.outputs.count}}
244+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
245+
246+
160247
Regression:
161248
runs-on: ubuntu-24.04
162249
strategy:
@@ -169,42 +256,12 @@ jobs:
169256
suite: 'vtr_reg_basic',
170257
extra_pkgs: ""
171258
},
172-
{
173-
name: 'Basic with highest assertion level',
174-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=4 -DWITH_BLIFEXPLORER=on',
175-
suite: 'vtr_reg_basic',
176-
extra_pkgs: ""
177-
},
178259
{
179260
name: 'Basic_odin',
180261
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
181262
suite: 'vtr_reg_basic_odin',
182263
extra_pkgs: ""
183264
},
184-
{
185-
name: 'Basic with NO_GRAPHICS',
186-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
187-
suite: 'vtr_reg_basic',
188-
extra_pkgs: ""
189-
},
190-
{
191-
name: 'Basic with NO_SERVER',
192-
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=on -DVPR_USE_SERVER=off',
193-
suite: 'vtr_reg_basic',
194-
extra_pkgs: ""
195-
},
196-
{
197-
name: 'Basic with CAPNPROTO disabled',
198-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
199-
suite: 'vtr_reg_basic',
200-
extra_pkgs: ""
201-
},
202-
{
203-
name: 'Basic with serial VPR_EXECUTION_ENGINE',
204-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_EXECUTION_ENGINE=serial -DTATUM_EXECUTION_ENGINE=serial',
205-
suite: 'vtr_reg_basic',
206-
extra_pkgs: ""
207-
},
208265
{
209266
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
210267
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
@@ -518,6 +575,7 @@ jobs:
518575
- Format
519576
- UniTests
520577
- Warnings
578+
- BuildVariations
521579
- Regression
522580
- Sanitized
523581
- Parmys

0 commit comments

Comments
 (0)