Skip to content

Commit 10e4901

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

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

.circleci/config.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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 dpendencies
15+
command: |
16+
sudo apt update
17+
sudo apt install g++ gfortran libopenmpi-dev 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 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+
- run:
43+
name: Test openPMD-api
44+
command: |
45+
eval $(spack env activate --sh .github/ci/spack-envs/gcc_py_ompi_h5_ad2_arm64/)
46+
ctest --test-dir build --output-on-failure
47+
48+
workflows:
49+
version: 2
50+
all-tests:
51+
jobs:
52+
- linux-aarch64
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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+
openmpi:
22+
externals:
23+
24+
prefix: /usr
25+
buildable: False
26+
perl:
27+
externals:
28+
29+
prefix: /usr
30+
buildable: False
31+
python:
32+
externals:
33+
34+
prefix: /usr
35+
buildable: False
36+
all:
37+
target: [aarch64]
38+
variants: ~fortran
39+
compiler: [[email protected]]
40+
41+
compilers:
42+
- compiler:
43+
environment: {}
44+
extra_rpaths: []
45+
flags: {}
46+
modules: []
47+
operating_system: ubuntu20.04
48+
paths:
49+
cc: /usr/bin/gcc
50+
cxx: /usr/bin/g++
51+
f77: /usr/bin/gfortran
52+
fc: /usr/bin/gfortran
53+
54+
target: aarch64
55+
56+
config:
57+
build_jobs: 2
58+
59+
mirrors:
60+
E4S: https://cache.e4s.io

0 commit comments

Comments
 (0)