Skip to content

Test Numpy on Python 2 / 3 on all architectures#1390

Closed
jgavris wants to merge 1 commit into
kivy:masterfrom
ButterflyNetwork:test-matrix
Closed

Test Numpy on Python 2 / 3 on all architectures#1390
jgavris wants to merge 1 commit into
kivy:masterfrom
ButterflyNetwork:test-matrix

Conversation

@jgavris

@jgavris jgavris commented Oct 3, 2018

Copy link
Copy Markdown

I'm working on getting numpy built for Python 3.6 on x86_64 and arm64-v8a ABIs, I just wanted to add and or check if this passes on CI in the meantime.

The test matrix could probably be refactored to be a bit cleaner, I think it would be great if every build command were tested against every ABI.

@jgavris jgavris changed the title Test numpy on python 2 / 3 on all architectures Test Numpy on Python 2 / 3 on all architectures Oct 3, 2018
@AndreMiras

Copy link
Copy Markdown
Member

Nice, thanks for the pull request.
I agree we should have a better coverage, but Jenkins would never be ending for every single PR.
So we need to first tackle this story #1382
Basically the idea is to dynamically build only the part that were touched by code change. That way we could cover more (e.g. different Python host/target version and architecture) the concerned recipes.
So I'm keeping your PR open, but can't merge it before #1382 because it would really cause too much overhead on the CI. Once we've done with it we will review/rework your PR to make it to the tree.
Does it make sense to you?

@jgavris

jgavris commented Oct 3, 2018

Copy link
Copy Markdown
Author

What are the expensive parts of the docker build? I would be concerned it is difficult to get 'conditional builds' done correctly (without going all-in with a fancy build system like bazel). I wonder if there is any low-hanging fruit like rebuilding the docker images with up to date system packages and android SDK / NDK. That looks like it's taking a real long time, versus the actual python-for-android apk build.

@AndreMiras

Copy link
Copy Markdown
Member

Yes the docker build takes time since it needs to download some heavy component for instance.
But not only, also compiling p4a recipes take time.
You can take a look at the last master build for instance:
https://travis-ci.org/kivy/python-for-android/builds/435279943
And open some of the different jobs to see where the time is spent. For instance in Job #173.1. Here docker build --tag=p4a . 1000 seconds (16 minutes) are spent and the rest (10 minutes) is spent on the docker run that builds the recipes.

So yes SDK/NDK takes ages, but it's not recommended to cache it in Travis. Yes one solution could be to use a Docker image that has SDK/NDK and is optimized, but I also like that we have the control over our Docker image.

Yes the conditional build is not an easy one, but I still imagine it's feasible.

@AndreMiras

Copy link
Copy Markdown
Member

Thank you again for your PR! I'm sorry we didn't make it to the tree.
The support for x86_64 architecture was added recently in #1476.

Conditional builds are in place via:

It's still far from being perfect, so feel free to open a dedicated PR/issue if you want to further discuss the CI improvements. For instance yes pre-built docker image may help. Also the recent drop of CrystaX support in the CI speed up the Docker build.

@AndreMiras AndreMiras closed this Dec 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants