Skip to content

Commit 12858a2

Browse files
committed
WIP: [ci] Add tests for OpenMP
1 parent 370d34f commit 12858a2

File tree

1 file changed

+268
-0
lines changed

1 file changed

+268
-0
lines changed
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
name: Build and Test OpenMP
2+
on:
3+
push:
4+
paths:
5+
## - 'clang/lib/AST/*OpenMP*'
6+
# - 'clang/lib/Sema/*OpenMP*'
7+
# - 'clang/lib/CodeGen/*OpenMP*'
8+
# - 'openmp/**'
9+
# - '.github/workflows/openmp-build-and-test.yaml'
10+
# pull_request:
11+
# paths:
12+
# - 'clang/lib/AST/*OpenMP*'
13+
# - 'clang/lib/Sema/*OpenMP*'
14+
# - 'clang/lib/CodeGen/*OpenMP*'
15+
# - 'openmp/**'
16+
# - '.github/workflows/openmp-build-and-test.yaml'
17+
18+
permissions:
19+
contents: read # Default everything to read-only
20+
21+
22+
jobs:
23+
windows-msvc:
24+
runs-on: windows-latest
25+
steps:
26+
- name: Install dependencies
27+
run: |
28+
choco install -y ninja
29+
# We need a newer llvm-lib, in order to build the OpenMP interface library
30+
choco install -y llvm --version=19.1.0
31+
- uses: actions/checkout@v4
32+
- name: Set up the MSVC dev environment
33+
uses: ilammy/msvc-dev-cmd@v1
34+
- name: Setup ccache
35+
uses: hendrikmuhs/ccache-action@v1
36+
with:
37+
max-size: 700M
38+
key: clangcl-19
39+
variant: sccache
40+
- name: Build and test
41+
run: |
42+
mkdir build
43+
cd build
44+
cmake ../llvm `
45+
-G Ninja `
46+
-DCMAKE_BUILD_TYPE=Release `
47+
-DLLVM_TARGETS_TO_BUILD=X86 `
48+
-DLLVM_ENABLE_PROJECTS="clang;openmp" `
49+
-DCMAKE_C_COMPILER=clang-cl `
50+
-DCMAKE_CXX_COMPILER=clang-cl `
51+
-DLLVM_LIT_ARGS="-v --time-tests --show-unsupported" `
52+
-DCMAKE_C_COMPILER_LAUNCHER=sccache `
53+
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache
54+
ninja check-openmp
55+
56+
windows-msvc-separate:
57+
runs-on: windows-latest
58+
steps:
59+
- name: Install dependencies
60+
run: |
61+
choco install -y ninja
62+
- uses: actions/checkout@v4
63+
- name: Set up the MSVC dev environment
64+
uses: ilammy/msvc-dev-cmd@v1
65+
- name: Setup ccache
66+
uses: hendrikmuhs/ccache-action@v1
67+
with:
68+
max-size: 700M
69+
key: clangcl-default
70+
variant: sccache
71+
- name: Build Clang and test tools
72+
run: |
73+
mkdir build
74+
cd build
75+
cmake ../llvm `
76+
-G Ninja `
77+
-DCMAKE_BUILD_TYPE=Release `
78+
-DLLVM_TARGETS_TO_BUILD=X86 `
79+
-DLLVM_ENABLE_PROJECTS="clang" `
80+
-DCMAKE_C_COMPILER=clang-cl `
81+
-DCMAKE_CXX_COMPILER=clang-cl `
82+
-DCMAKE_C_COMPILER_LAUNCHER=sccache `
83+
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache
84+
ninja
85+
echo "$PWD\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
86+
echo "LLVM_TOOLS=$PWD\bin" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
87+
- name: Build and test OpenMP
88+
run: |
89+
cd openmp
90+
mkdir build
91+
cd build
92+
cmake .. `
93+
-G Ninja `
94+
-DCMAKE_BUILD_TYPE=Release `
95+
-DOPENMP_LLVM_TOOLS_DIR="$Env:LLVM_TOOLS" `
96+
-DCMAKE_C_COMPILER=clang-cl `
97+
-DCMAKE_CXX_COMPILER=clang-cl `
98+
-DOPENMP_LIT_ARGS="-v --time-tests --show-unsupported" `
99+
-DOPENMP_TEST_C_COMPILER=clang `
100+
-DOPENMP_TEST_CXX_COMPILER=clang++
101+
ninja check-openmp
102+
103+
llvm-mingw:
104+
runs-on: windows-latest
105+
steps:
106+
- name: Install dependencies
107+
run: |
108+
choco install -y ninja
109+
- uses: actions/checkout@v4
110+
- name: Install llvm-mingw
111+
run: |
112+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240917/llvm-mingw-20240917-ucrt-x86_64.zip
113+
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
114+
del llvm-mingw*.zip
115+
mv llvm-mingw* c:\llvm-mingw
116+
echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
117+
- name: Setup ccache
118+
uses: hendrikmuhs/ccache-action@v1
119+
with:
120+
max-size: 700M
121+
key: llvm-mingw
122+
variant: ccache
123+
- name: Build and test
124+
run: |
125+
mkdir build
126+
cd build
127+
cmake ../llvm `
128+
-G Ninja `
129+
-DCMAKE_BUILD_TYPE=Release `
130+
-DLLVM_TARGETS_TO_BUILD=X86 `
131+
-DLLVM_ENABLE_PROJECTS="clang;compiler-rt;openmp" `
132+
-DCLANG_DEFAULT_RTLIB=compiler-rt `
133+
-DCLANG_DEFAULT_UNWINDLIB=libunwind `
134+
-DCLANG_DEFAULT_CXX_STDLIB=libc++ `
135+
-DCLANG_DEFAULT_LINKER=lld `
136+
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=TRUE `
137+
-DSANITIZER_CXX_ABI=libc++ `
138+
-DCMAKE_ASM_MASM_COMPILER=llvm-ml `
139+
-DLIBOMP_ASMFLAGS=-m64 `
140+
-DLLVM_LIT_ARGS="-v --time-tests --show-unsupported" `
141+
-DCMAKE_C_COMPILER_LAUNCHER=ccache `
142+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
143+
ninja compiler-rt
144+
ninja check-openmp
145+
146+
llvm-mingw-separate:
147+
runs-on: windows-latest
148+
steps:
149+
- name: Install dependencies
150+
run: |
151+
choco install -y ninja
152+
- uses: actions/checkout@v4
153+
- name: Install llvm-mingw
154+
run: |
155+
curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240917/llvm-mingw-20240917-ucrt-x86_64.zip
156+
powershell Expand-Archive llvm-mingw*.zip -DestinationPath .
157+
del llvm-mingw*.zip
158+
mv llvm-mingw* c:\llvm-mingw
159+
echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
160+
- name: Setup ccache
161+
uses: hendrikmuhs/ccache-action@v1
162+
with:
163+
max-size: 700M
164+
key: llvm-mingw
165+
variant: ccache
166+
- name: Build Clang and test tools
167+
run: |
168+
mkdir build
169+
cd build
170+
cmake ../llvm `
171+
-G Ninja `
172+
-DCMAKE_BUILD_TYPE=Release `
173+
-DLLVM_TARGETS_TO_BUILD=X86 `
174+
-DLLVM_ENABLE_PROJECTS="clang;compiler-rt" `
175+
-DCLANG_DEFAULT_RTLIB=compiler-rt `
176+
-DCLANG_DEFAULT_UNWINDLIB=libunwind `
177+
-DCLANG_DEFAULT_CXX_STDLIB=libc++ `
178+
-DCLANG_DEFAULT_LINKER=lld `
179+
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=TRUE `
180+
-DSANITIZER_CXX_ABI=libc++ `
181+
-DCMAKE_C_COMPILER_LAUNCHER=ccache `
182+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
183+
ninja not FileCheck clang compiler-rt
184+
echo "$PWD\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append
185+
echo "LLVM_TOOLS=$PWD\bin" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
186+
- name: Build and test OpenMP
187+
run: |
188+
cd openmp
189+
mkdir build
190+
cd build
191+
cmake .. `
192+
-G Ninja `
193+
-DCMAKE_BUILD_TYPE=Release `
194+
-DOPENMP_LLVM_TOOLS_DIR="$Env:LLVM_TOOLS" `
195+
-DCMAKE_C_COMPILER=clang `
196+
-DCMAKE_CXX_COMPILER=clang++ `
197+
-DCMAKE_ASM_MASM_COMPILER=llvm-ml `
198+
-DOPENMP_LIT_ARGS="-v --time-tests --show-unsupported" `
199+
-DLIBOMP_ASMFLAGS=-m64
200+
ninja check-openmp
201+
202+
linux:
203+
runs-on: ubuntu-latest
204+
steps:
205+
- name: Install dependencies
206+
run: |
207+
sudo apt-get update && sudo apt-get install ninja-build
208+
- uses: actions/checkout@v4
209+
- name: Setup ccache
210+
uses: hendrikmuhs/ccache-action@v1
211+
with:
212+
max-size: 700M
213+
key: linux
214+
- name: Build and test
215+
run: |
216+
mkdir build
217+
cd build
218+
cmake ../llvm \
219+
-G Ninja \
220+
-DCMAKE_BUILD_TYPE=Release \
221+
-DLLVM_TARGETS_TO_BUILD=X86 \
222+
-DLLVM_ENABLE_PROJECTS="clang;openmp" \
223+
-DOPENMP_ENABLE_LIBOMPTARGET=OFF \
224+
-DLLVM_LIT_ARGS="-v --time-tests --show-unsupported" \
225+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
226+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
227+
ninja check-openmp
228+
229+
linux-separate:
230+
runs-on: ubuntu-latest
231+
steps:
232+
- name: Install dependencies
233+
run: |
234+
sudo apt-get update && sudo apt-get install ninja-build
235+
- uses: actions/checkout@v4
236+
- name: Setup ccache
237+
uses: hendrikmuhs/ccache-action@v1
238+
with:
239+
max-size: 700M
240+
key: linux
241+
- name: Build Clang and test tools
242+
run: |
243+
mkdir build
244+
cd build
245+
cmake ../llvm \
246+
-G Ninja \
247+
-DCMAKE_BUILD_TYPE=Release \
248+
-DLLVM_TARGETS_TO_BUILD=X86 \
249+
-DLLVM_ENABLE_PROJECTS="clang" \
250+
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
251+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
252+
ninja not FileCheck clang
253+
echo $(pwd)/bin > $GITHUB_PATH
254+
echo LLVM_TOOLS=$(pwd)/bin > $GITHUB_ENV
255+
- name: Build and test OpenMP
256+
run: |
257+
cd openmp
258+
mkdir build
259+
cd build
260+
cmake .. \
261+
-G Ninja \
262+
-DCMAKE_BUILD_TYPE=Release \
263+
-DOPENMP_LLVM_TOOLS_DIR="$LLVM_TOOLS" \
264+
-DCMAKE_C_COMPILER=clang \
265+
-DCMAKE_CXX_COMPILER=clang++ \
266+
-DOPENMP_ENABLE_LIBOMPTARGET=OFF \
267+
-DOPENMP_LIT_ARGS="-v --time-tests --show-unsupported"
268+
ninja check-openmp

0 commit comments

Comments
 (0)