Skip to content

Commit c87e68b

Browse files
[CI] Added Odin Build
1 parent 17b0f24 commit c87e68b

File tree

1 file changed

+153
-31
lines changed

1 file changed

+153
-31
lines changed

.github/workflows/test.yml

Lines changed: 153 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ jobs:
7474
name: 'B: Building VTR Release'
7575
runs-on: ubuntu-24.04
7676
steps:
77+
- uses: actions/checkout@v4
78+
with:
79+
submodules: 'true'
80+
7781
- name: Get number of CPU cores
7882
uses: SimenB/github-actions-cpu-cores@v2
7983
id: cpu-cores
@@ -108,6 +112,48 @@ jobs:
108112
ccache -s
109113
110114
115+
BuildVTRWithOdin:
116+
name: 'B: Building VTR Release With Odin'
117+
runs-on: ubuntu-24.04
118+
steps:
119+
- uses: actions/checkout@v4
120+
with:
121+
submodules: 'true'
122+
123+
- name: Get number of CPU cores
124+
uses: SimenB/github-actions-cpu-cores@v2
125+
id: cpu-cores
126+
127+
- name: Install dependencies
128+
run: ./.github/scripts/install_dependencies.sh
129+
130+
- uses: hendrikmuhs/[email protected]
131+
132+
- name: Build
133+
env:
134+
CMAKE_PARAMS: "-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on"
135+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
136+
run: |
137+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
138+
make -j${{ steps.cpu-cores.outputs.count}} release
139+
140+
- name: Pack Build
141+
shell: bash
142+
run: |
143+
tar -czvf build.tar.gz --exclude='CMakeFiles' --exclude='*.a' --exclude='*.cmake' build/
144+
145+
- name: Store Build Artifact
146+
uses: actions/upload-artifact@v4
147+
with:
148+
name: build-release-with-odin.tar.gz
149+
path: build.tar.gz
150+
retention-days: 1
151+
152+
- name: Print CCache Statistics
153+
run: |
154+
ccache -s
155+
156+
111157
Format:
112158
runs-on: ubuntu-24.04
113159
strategy:
@@ -272,9 +318,21 @@ jobs:
272318
make -j${{ steps.cpu-cores.outputs.count}}
273319
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
274320
321+
- name: 'Test with VTR_ENABLE_DEBUG_LOGGING enabled'
322+
if: success() || failure()
323+
env:
324+
CMAKE_PARAMS: "${{ env.COMMON_CMAKE_PARAMS }} -DVTR_ENABLE_DEBUG_LOGGING=on"
325+
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
326+
run: |
327+
rm -f build/CMakeCache.txt
328+
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
329+
make -j${{ steps.cpu-cores.outputs.count}}
330+
./run_reg_test.py vtr_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count}}
331+
275332
276333
Regression:
277334
runs-on: ubuntu-24.04
335+
needs: [BuildVTR]
278336
strategy:
279337
fail-fast: false
280338
matrix:
@@ -285,29 +343,83 @@ jobs:
285343
suite: 'vtr_reg_basic',
286344
extra_pkgs: ""
287345
},
288-
{
289-
name: 'Basic_odin',
290-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
291-
suite: 'vtr_reg_basic_odin',
292-
extra_pkgs: ""
293-
},
294-
{
295-
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
296-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
297-
suite: 'vtr_reg_basic',
298-
extra_pkgs: ""
299-
},
300-
{
301-
name: 'Basic_odin with VTR_ENABLE_DEBUG_LOGGING',
302-
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
303-
suite: 'vtr_reg_basic_odin',
304-
extra_pkgs: ""
305-
},
306346
{
307347
name: 'Strong',
308348
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
309349
suite: 'vtr_reg_strong',
310350
extra_pkgs: "libeigen3-dev"
351+
}
352+
]
353+
name: 'R: ${{ matrix.name }}'
354+
steps:
355+
356+
- uses: actions/setup-python@v5
357+
with:
358+
python-version: 3.12.3
359+
360+
- uses: actions/checkout@v4
361+
with:
362+
submodules: 'true'
363+
364+
- name: Get number of CPU cores
365+
uses: SimenB/github-actions-cpu-cores@v2
366+
id: cpu-cores
367+
368+
- name: Install dependencies
369+
run: ./.github/scripts/install_dependencies.sh
370+
371+
- name: Install external libraries
372+
run: sudo apt install -y ${{ matrix.extra_pkgs }}
373+
if: ${{ matrix.extra_pkgs }}
374+
375+
- name: Download Build Artifact
376+
uses: actions/download-artifact@v4
377+
with:
378+
name: build-release.tar.gz
379+
380+
- name: Unpack Build
381+
shell: bash
382+
run: |
383+
tar -xvzf build.tar.gz
384+
385+
- name: Test
386+
run: |
387+
./run_reg_test.py ${{ matrix.suite }} -show_failures -j${{ steps.cpu-cores.outputs.count}}
388+
389+
- name: Upload regression run files
390+
if: ${{ !cancelled() }}
391+
uses: actions/upload-artifact@v4
392+
with:
393+
name: ${{matrix.name}}_run_files
394+
path: |
395+
vtr_flow/**/*.out
396+
# vtr_flow/**/*.blif # Removed since it was taking too much space and was hardly used.
397+
vtr_flow/**/*.p
398+
vtr_flow/**/*.net
399+
vtr_flow/**/*.r
400+
401+
- name: Upload regression results
402+
if: ${{ !cancelled() }}
403+
uses: actions/upload-artifact@v4
404+
with:
405+
name: ${{matrix.name}}_results
406+
path: |
407+
vtr_flow/**/*.log
408+
vtr_flow/**/parse_results*.txt
409+
410+
411+
RegressionWithOdin:
412+
runs-on: ubuntu-24.04
413+
needs: [BuildVTRWithOdin]
414+
strategy:
415+
fail-fast: false
416+
matrix:
417+
include: [
418+
{
419+
name: 'Basic_odin',
420+
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_IPO_BUILD=off -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
421+
suite: 'vtr_reg_basic_odin',
422+
extra_pkgs: ""
311423
},
312424
{
313425
name: 'Strong_odin',
@@ -344,15 +456,18 @@ jobs:
344456
run: sudo apt install -y ${{ matrix.extra_pkgs }}
345457
if: ${{ matrix.extra_pkgs }}
346458

347-
- uses: hendrikmuhs/[email protected]
459+
- name: Download Build Artifact
460+
uses: actions/download-artifact@v4
461+
with:
462+
name: build-release-with-odin.tar.gz
463+
464+
- name: Unpack Build
465+
shell: bash
466+
run: |
467+
tar -xvzf build.tar.gz
348468
349469
- name: Test
350-
env:
351-
CMAKE_PARAMS: ${{ matrix.params }}
352-
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
353470
run: |
354-
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
355-
./.github/scripts/build.sh
356471
./run_reg_test.py ${{ matrix.suite }} -show_failures -j${{ steps.cpu-cores.outputs.count}}
357472
358473
- name: Upload regression run files
@@ -376,6 +491,7 @@ jobs:
376491
vtr_flow/**/*.log
377492
vtr_flow/**/parse_results*.txt
378493
494+
379495
Sanitized:
380496
runs-on: ubuntu-24.04
381497
strategy:
@@ -467,6 +583,7 @@ jobs:
467583
ODINII:
468584
name: 'ODIN-II Basic Test'
469585
runs-on: ubuntu-24.04
586+
needs: [BuildVTRWithOdin]
470587
steps:
471588

472589
- uses: actions/setup-python@v5
@@ -483,17 +600,19 @@ jobs:
483600
- name: Install dependencies
484601
run: ./.github/scripts/install_dependencies.sh
485602

486-
- uses: hendrikmuhs/[email protected]
603+
- name: Download Build Artifact
604+
uses: actions/download-artifact@v4
605+
with:
606+
name: build-release-with-odin.tar.gz
607+
608+
- name: Unpack Build
609+
shell: bash
610+
run: |
611+
tar -xvzf build.tar.gz
487612
488613
- name: Test
489-
env:
490-
CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on'
491-
BUILD_TYPE: debug
492-
NUM_PROC: ${{ steps.cpu-cores.outputs.count }}
493614
run: |
494615
sudo sysctl -w vm.mmap_rnd_bits=28
495-
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
496-
./.github/scripts/build.sh
497616
./run_reg_test.py odin_reg_basic -show_failures -j${{ steps.cpu-cores.outputs.count }}
498617
499618
@@ -609,16 +728,19 @@ jobs:
609728
needs:
610729
- Build
611730
- BuildVTR
731+
- BuildVTRWithOdin
612732
- Format
613733
- VerifyTestSuites
614734
- UnitTests
615735
- BuildVariations
616736
- Regression
737+
- RegressionWithOdin
617738
- Sanitized
618739
- Parmys
619740
- ODINII
620741
- VQM2BLIF
621742
- Compatibility
743+
- JammyCompatibility
622744
runs-on: ubuntu-24.04
623745
steps:
624746

0 commit comments

Comments
 (0)