TST: ARMv8 sample CI build
See original GitHub issueCI for more “exotic” platforms like ARM is on our roadmap. Since there’s a free ARMv8-a machine pool available from shippable I went ahead and drafted a feature branch in my NumPy fork that contains a shippable.yml
with a few basic commands to build & test NumPy.
The console results are available here, and hopefully you can see those. In short, python runtests.py
seems to build without problems and produce this test output:
1 failed, 4627 passed, 406 skipped, 87 deselected, 10 xfailed in 226.59 seconds
There are probably various discussion points, including whether we really want to do this, but a few initial observations:
- the above is with Python 2.7 because there seem to be some challenges getting pre-installed 3.6 to work by default with their ARM shared pool image
- seems like a lot of skipped tests above & we’d have to make sure that the default virtual env isolation is appropriate and there’s no other NumPy system installation causing issues, etc. (I think we are very cautious about this stuff on Travis)
- cython is (so far) the only dependency that I pip installed so would indeed have to check the environment stuff quite carefully to see what is preloaded or prevent interaction with it
- I did have to email them to get permission to access the free pool, but they were very fast / responsive (minutes usually so far)
Other Note: I didn’t initiate this as a PR directly to NumPy so that I could avoid trying to register the actual NumPy organization with the service until i.e. core devs / steering committee have weighed in, etc.
Issue Analytics
- State:
- Created 5 years ago
- Comments:19 (19 by maintainers)
The discussion surrounding “official” PyPI ARMv8 Cython builds is not looking positive, in short because of ecosystem / standards issues.
As a result, I’ve figured out how to cache Cython wheels using shippable Amazon S3 cache uploads in a way that allows both the 2.7 and 3.7 builds to run in 9 minutes – the same as the best previous results with a wheel-specific URL.
Does this seem like a suitable approach for now? If we ever change Cython versions we pay a 1-time 13 minute build tax for each job in the matrix, but then subsequent builds continue using the cached wheel once refreshed.
This has been enabled, no?