Skip to content

Commit a90fa05

Browse files
Add workflow to test n-1 static loader from master branch & dynamic loader from PR (#390)
* Add workflow to test n-1 static loader from main with dynamic loader from PR Signed-off-by: Vishnu Khanth <[email protected]>
1 parent 1577f45 commit a90fa05

File tree

1 file changed

+111
-0
lines changed

1 file changed

+111
-0
lines changed
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
on:
2+
push:
3+
branches: [ master,release_branch* ]
4+
pull_request:
5+
branches: [ master,release_branch* ]
6+
workflow_dispatch:
7+
8+
permissions: read-all
9+
10+
jobs:
11+
# Linux job: Build static loader from master, dynamic loader from PR, test static loader with PR dynamic loader
12+
build-linux:
13+
if: github.repository_owner == 'oneapi-src'
14+
runs-on: ubuntu-latest
15+
steps:
16+
# Use ccache-action for ccache setup and caching
17+
- uses: actions/checkout@v3
18+
with:
19+
fetch-depth: 0
20+
path: pr
21+
- uses: hendrikmuhs/ccache-action@v1
22+
23+
# Checkout master branch for static loader source
24+
- name: Checkout master branch for static loader
25+
uses: actions/checkout@v3
26+
with:
27+
ref: master
28+
fetch-depth: 0
29+
path: master
30+
31+
# Build static loader from master branch
32+
- name: Build Static Loader from master
33+
run: |
34+
cd master
35+
mkdir build
36+
cd build
37+
cmake \
38+
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
39+
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
40+
-D CMAKE_BUILD_TYPE=Release \
41+
-D BUILD_L0_LOADER_TESTS=1 \
42+
-D BUILD_STATIC=1 \
43+
..
44+
make -j$(nproc)
45+
46+
# Build dynamic loader from PR branch
47+
- name: Build Dynamic Loader from PR
48+
run: |
49+
cd pr
50+
mkdir dynamic_build
51+
cd dynamic_build
52+
cmake \
53+
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
54+
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
55+
-D CMAKE_BUILD_TYPE=Release \
56+
-D BUILD_STATIC=0 \
57+
..
58+
make -j$(nproc)
59+
60+
# Run CTest in static loader's build directory, using PR dynamic loader via ZEL_LIBRARY_PATH
61+
- name: Run CTest with PR dynamic loader and master static loader
62+
env:
63+
ZEL_LIBRARY_PATH: '${{ github.workspace }}/pr/dynamic_build/lib'
64+
working-directory: master/build
65+
run: |
66+
ls $ZEL_LIBRARY_PATH
67+
ctest -V
68+
69+
# Windows job: Build static loader from master, dynamic loader from PR, test static loader with PR dynamic loader
70+
build-windows:
71+
if: github.repository_owner == 'oneapi-src'
72+
runs-on: windows-latest
73+
steps:
74+
# Checkout PR branch (dynamic loader source)
75+
- uses: actions/checkout@v3
76+
with:
77+
fetch-depth: 0
78+
path: pr
79+
80+
# Checkout master branch for static loader source
81+
- name: Checkout master branch for static loader
82+
uses: actions/checkout@v3
83+
with:
84+
ref: master
85+
fetch-depth: 0
86+
path: master
87+
88+
# Build static loader from master branch
89+
- name: Build Static Loader from master
90+
run: |
91+
cd master
92+
mkdir build
93+
cd build
94+
cmake -D BUILD_L0_LOADER_TESTS=1 -D BUILD_STATIC=1 ..
95+
cmake --build . --config Release
96+
97+
# Build dynamic loader from PR branch
98+
- name: Build Dynamic Loader from PR
99+
run: |
100+
cd pr
101+
mkdir dynamic_build
102+
cd dynamic_build
103+
cmake -D BUILD_L0_LOADER_TESTS=0 -D BUILD_STATIC=0 ..
104+
cmake --build . --config Release
105+
106+
# Run CTest in static loader's build directory, using PR dynamic loader via ZEL_LIBRARY_PATH
107+
- name: Run CTest with PR dynamic loader and master static loader
108+
env:
109+
ZEL_LIBRARY_PATH: '${{ github.workspace }}\\pr\\dynamic_build\\bin\\Release'
110+
working-directory: master/build
111+
run: ctest -C Release -V

0 commit comments

Comments
 (0)