9898 - name : Upload coverage report
9999 uses : codecov/codecov-action@v1
100100
101+ test-arch :
102+ if : startsWith(github.ref, 'refs/tags') || github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main'
103+ name : Test on ${{ matrix.distro }} ${{ matrix.arch }}
104+ runs-on : " ubuntu-latest"
105+ needs : lint
106+ strategy :
107+ matrix :
108+ distro : [ "ubuntu20.04" ]
109+ arch : ["aarch64"]
110+ steps :
111+ 112+ with :
113+ submodules : recursive
114+ 115+ name : Build & run test
116+ with :
117+ arch : ${{ matrix.arch }}
118+ distro : ${{ matrix.distro }}
119+ install : |
120+ apt-get update -q -y
121+ apt-get install -q -y python3 python3-pip gcc binutils automake autoconf libtool
122+ run : |
123+ python3 -m pip install -U setuptools pip wheel tox
124+ tox
125+
101126 # Test if the python-isal conda package can be build. Which is linked
102127 # dynamically to the conda isa-l package.
103128 test-dynamic :
@@ -132,7 +157,7 @@ jobs:
132157 deploy :
133158 if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
134159 runs-on : ${{ matrix.os }}
135- needs : [lint, package-checks, test-static, test-dynamic]
160+ needs : [lint, package-checks, test-static, test-dynamic, test-arch ]
136161 strategy :
137162 matrix :
138163 os : ["macos-latest", "ubuntu-latest", "windows-latest"]
@@ -153,11 +178,18 @@ jobs:
153178 - name : Install nasm (Windows)
154179155180 if : runner.os == 'Windows'
181+ - name : Set up QEMU
182+ if : runner.os == 'Linux'
183+ 184+ with :
185+ platforms : arm64
156186 - name : Build wheels
157187 run : cibuildwheel --output-dir dist
158188 env :
159189 CIBW_SKIP : " *-win32 *-manylinux_i686" # Skip 32 bit.
160190 CIBW_MANYLINUX_X86_64_IMAGE : " manylinux2014"
191+ CIBW_MANYLINUX_AARCH64_IMAGE : " manylinux2014"
192+ CIBW_ARCHS_LINUX : " x86_64 aarch64"
161193 # Fully test the build wheels again.
162194 CIBW_TEST_REQUIRES : " pytest"
163195 # Simple test that requires the project to be build correctly
0 commit comments