@@ -57,10 +57,12 @@ jobs:
5757 strategy :
5858 matrix :
5959 python-version :
60- - 3.6
61- - 3.7
62- - 3.8
63- - 3.9
60+ - " 3.6"
61+ - " 3.7"
62+ - " 3.8"
63+ - " 3.9"
64+ - " pypy-3.6"
65+ - " pypy-3.7"
6466 os : ["ubuntu-latest"]
6567 include :
6668 - os : " macos-latest"
@@ -92,10 +94,34 @@ jobs:
92949395 if : runner.os == 'Windows'
9496 - name : Run tests
95- run : tox -e py3
97+ run : tox
9698 - name : Upload coverage report
9799 uses : codecov/codecov-action@v1
98100
101+ test-arch :
102+ if : startsWith(github.ref, 'refs/tags') || github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main'
103+ runs-on : " ubuntu-latest"
104+ needs : lint
105+ strategy :
106+ matrix :
107+ distro : [ "ubuntu20.04" ]
108+ arch : ["aarch64"]
109+ steps :
110+ 111+ with :
112+ submodules : recursive
113+ 114+ name : Build & run test
115+ with :
116+ arch : ${{ matrix.arch }}
117+ distro : ${{ matrix.distro }}
118+ install : |
119+ apt-get update -q -y
120+ apt-get install -q -y python3 python3-pip gcc binutils automake autoconf libtool
121+ run : |
122+ python3 -m pip install -U setuptools pip wheel tox
123+ tox
124+
99125 # Test if the python-isal conda package can be build. Which is linked
100126 # dynamically to the conda isa-l package.
101127 test-dynamic :
@@ -109,6 +135,10 @@ jobs:
109135 strategy :
110136 matrix :
111137 os : ["ubuntu-latest", "macos-latest", "windows-latest"]
138+ python_version : ["python"]
139+ include :
140+ - os : " ubuntu-latest"
141+ python_version : " pypy"
112142 steps :
113143114144 with :
@@ -118,19 +148,19 @@ jobs:
118148 with :
119149 channels : conda-forge,defaults
120150 - name : Install requirements (universal)
121- run : conda install isa-l python tox
151+ run : conda install isa-l ${{ matrix.python_version}} tox
122152 - name : Set MSVC developer prompt
123153124154 if : runner.os == 'Windows'
125155 - name : Run tests (dynamic link)
126- run : tox -e py3
156+ run : tox
127157 env :
128158 PYTHON_ISAL_LINK_DYNAMIC : True
129159
130160 deploy :
131161 if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
132162 runs-on : ${{ matrix.os }}
133- needs : [lint, package-checks, test-static, test-dynamic]
163+ needs : [lint, package-checks, test-static, test-dynamic, test-arch ]
134164 strategy :
135165 matrix :
136166 os : ["macos-latest", "ubuntu-latest", "windows-latest"]
@@ -151,16 +181,23 @@ jobs:
151181 - name : Install nasm (Windows)
152182153183 if : runner.os == 'Windows'
184+ - name : Set up QEMU
185+ if : runner.os == 'Linux'
186+ 187+ with :
188+ platforms : arm64
154189 - name : Build wheels
155190 run : cibuildwheel --output-dir dist
156191 env :
157- CIBW_BUILD : " cp3{6,7,8,9}-*"
158192 CIBW_SKIP : " *-win32 *-manylinux_i686" # Skip 32 bit.
159193 CIBW_MANYLINUX_X86_64_IMAGE : " manylinux2014"
194+ CIBW_MANYLINUX_AARCH64_IMAGE : " manylinux2014"
195+ CIBW_ARCHS_LINUX : " x86_64 aarch64"
160196 # Fully test the build wheels again.
161197 CIBW_TEST_REQUIRES : " pytest"
162198 # Simple test that requires the project to be build correctly
163- CIBW_TEST_COMMAND : " pytest {project}/tests/test_igzip.py"
199+ CIBW_TEST_COMMAND : >-
200+ pytest {project}/tests/test_igzip.py {project}/tests/test_isal.py
164201 - name : Build sdist
165202 if : " runner.os == 'Linux'"
166203 run : python setup.py sdist
0 commit comments