Skip to content

Commit 54953cd

Browse files
committed
CI: Linux aarch64/arm64
Add native Linux aarch64/arm64 runners with CircleCI.
1 parent 9d5bf96 commit 54953cd

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-0
lines changed

.circleci/config.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
version: 2
2+
3+
jobs:
4+
linux-aarch64:
5+
working_directory: ~/linux-aarch64-wheels
6+
machine:
7+
image: ubuntu-2004:2022.04.1
8+
# resource_class is what tells CircleCI to use an ARM worker for native arm builds
9+
# https://circleci.com/product/features/resource-classes/
10+
resource_class: arm.medium
11+
steps:
12+
- checkout
13+
- run:
14+
name: Install build dependencies
15+
command: |
16+
sudo apt update
17+
sudo apt install g++ gfortran libfabric-dev libopenmpi-dev libhdf5-openmpi-dev hdf5-tools python3 python3-setuptools
18+
sudo .github/workflows/dependencies/install_spack
19+
python3 -m pip install -U pip
20+
python3 -m pip install -U packaging setuptools wheel
21+
python3 -m pip install -U numpy
22+
python3 -m pip install -U mpi4py
23+
python3 -m pip install -U pandas
24+
python3 -m pip install -U dask
25+
python3 -m pip install -U pyarrow
26+
27+
eval $(spack env activate --sh .github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/)
28+
spack install
29+
30+
share/openPMD/download_samples.sh build
31+
- run:
32+
name: Build & Test openPMD-api
33+
command: |
34+
eval $(spack env activate --sh .github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/)
35+
cmake -S . -B build \
36+
-DopenPMD_USE_PYTHON=ON \
37+
-DopenPMD_USE_MPI=ON \
38+
-DopenPMD_USE_HDF5=ON \
39+
-DopenPMD_USE_ADIOS2=ON \
40+
-DopenPMD_USE_INVASIVE_TESTS=ON
41+
cmake --build build --parallel 2
42+
43+
ctest --test-dir build --output-on-failure
44+
45+
workflows:
46+
version: 2
47+
all-tests:
48+
jobs:
49+
- linux-aarch64
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# This is a Spack environment file.
2+
#
3+
# Activating and installing this environment will provide all dependencies
4+
# that are needed for full-feature development.
5+
# https//spack.readthedocs.io/en/latest/environments.html#anonymous-environments
6+
#
7+
spack:
8+
specs:
9+
- adios2
10+
- hdf5
11+
- openmpi
12+
13+
packages:
14+
adios2:
15+
variants: ~zfp ~sz ~png ~dataman ~python ~fortran ~ssc ~shared ~bzip2
16+
cmake:
17+
externals:
18+
19+
prefix: /usr
20+
buildable: False
21+
libfabric:
22+
externals:
23+
24+
prefix: /usr
25+
buildable: False
26+
openmpi:
27+
externals:
28+
29+
prefix: /usr
30+
buildable: False
31+
perl:
32+
externals:
33+
34+
prefix: /usr
35+
buildable: False
36+
python:
37+
externals:
38+
39+
prefix: /usr
40+
buildable: False
41+
hdf5:
42+
externals:
43+
44+
prefix: /usr
45+
buildable: False
46+
all:
47+
target: [aarch64]
48+
variants: ~fortran
49+
compiler: [[email protected]]
50+
51+
compilers:
52+
- compiler:
53+
environment: {}
54+
extra_rpaths: []
55+
flags: {}
56+
modules: []
57+
operating_system: ubuntu20.04
58+
paths:
59+
cc: /usr/bin/gcc
60+
cxx: /usr/bin/g++
61+
f77: /usr/bin/gfortran
62+
fc: /usr/bin/gfortran
63+
64+
target: aarch64
65+
66+
config:
67+
build_jobs: 2
68+
69+
# https://cache.spack.io/tag/v0.20.1/?stack=aws-ahug-aarch64
70+
mirrors:
71+
E4S: https://cache.e4s.io
72+
AWS: https://binaries.spack.io/v0.20.1/aws-ahug-aarch64

0 commit comments

Comments
 (0)