Skip to content

Commit 2829fb3

Browse files
authored
[CI] Add ARM64 based build jobs (#379)
1 parent a1fa76b commit 2829fb3

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

.github/workflows/main.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,53 @@ jobs:
3030
- name: Run linter
3131
run: |
3232
python3 -m flake8 .
33+
ubuntu-gcc-arm64-build:
34+
needs:
35+
- clang-format
36+
- python-lint
37+
runs-on: ubuntu-24.04-arm
38+
steps:
39+
- uses: actions/checkout@v4
40+
with:
41+
submodules: recursive
42+
- name: Setup environment
43+
run: |
44+
sudo apt-get update
45+
sudo apt-get install --no-install-recommends -y gcc-14 g++-14 ninja-build libmpich-dev libomp-dev valgrind
46+
python3 -m pip install -r requirements.txt
47+
- name: ccache
48+
uses: hendrikmuhs/[email protected]
49+
with:
50+
key: ${{ runner.os }}-gcc-arm64
51+
create-symlink: true
52+
max-size: 1G
53+
- name: CMake configure
54+
run: >
55+
cmake -S . -B build
56+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
57+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
58+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
59+
-D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install
60+
env:
61+
CC: gcc-14
62+
CXX: g++-14
63+
- name: Build project
64+
run: |
65+
cmake --build build --parallel
66+
env:
67+
CC: gcc-14
68+
CXX: g++-14
69+
- name: Install project
70+
run: |
71+
cmake --build build --target install
72+
- name: Archive installed package
73+
run: |
74+
tar -czvf ubuntu-gcc-arm64-install.tar.gz -C install .
75+
- name: Upload installed package
76+
uses: actions/upload-artifact@v4
77+
with:
78+
name: ubuntu-gcc-arm64-install
79+
path: ubuntu-gcc-arm64-install.tar.gz
3380
ubuntu-gcc-build:
3481
needs:
3582
- clang-format
@@ -237,6 +284,55 @@ jobs:
237284
with:
238285
name: ubuntu-clang-install
239286
path: ubuntu-clang-install.tar.gz
287+
ubuntu-clang-arm64-build:
288+
needs:
289+
- clang-format
290+
- python-lint
291+
runs-on: ubuntu-24.04-arm
292+
steps:
293+
- uses: actions/checkout@v4
294+
with:
295+
submodules: recursive
296+
- name: Setup environment
297+
run: |
298+
sudo apt-get update
299+
sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind
300+
wget https://apt.llvm.org/llvm.sh
301+
chmod u+x llvm.sh
302+
sudo ./llvm.sh 20 all
303+
- name: ccache
304+
uses: hendrikmuhs/[email protected]
305+
with:
306+
key: ${{ runner.os }}-clang-arm64
307+
create-symlink: true
308+
max-size: 1G
309+
- name: CMake configure
310+
run: >
311+
cmake -S . -B build
312+
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
313+
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
314+
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
315+
-D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=install
316+
env:
317+
CC: clang-20
318+
CXX: clang++-20
319+
- name: Build project
320+
run: |
321+
cmake --build build --parallel
322+
env:
323+
CC: clang-20
324+
CXX: clang++-20
325+
- name: Install project
326+
run: |
327+
cmake --build build --target install
328+
- name: Archive installed package
329+
run: |
330+
tar -czvf ubuntu-clang-arm64-install.tar.gz -C install .
331+
- name: Upload installed package
332+
uses: actions/upload-artifact@v4
333+
with:
334+
name: ubuntu-clang-arm64-install
335+
path: ubuntu-clang-arm64-install.tar.gz
240336
ubuntu-clang-test:
241337
needs:
242338
- ubuntu-clang-build

0 commit comments

Comments
 (0)