Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build MacOS wheels in separate Travis jobs #1205

Closed
wants to merge 4 commits into from
Closed

Build MacOS wheels in separate Travis jobs #1205

wants to merge 4 commits into from

Conversation

danielsuo
Copy link
Contributor

Python 2.7, 3.4, 3.5, and 3.6 wheels all build in their own Travis jobs now.

Notes:

@AmplabJenkins
Copy link

Can one of the admins verify this patch?

@robertnishihara
Copy link
Collaborator

ok to test

@AmplabJenkins
Copy link

Merged build finished. Test FAILed.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/2342/
Test FAILed.

"3.4"
"3.5"
"3.6")
if [[ "$PYTHON" == "2.7" ]]; then
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to leave the default behavior of this script unchanged so that it builds all of the wheels by default.

Instead of reading environment variables, one option would be to call this script from Travis and pass in different command line arguments.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This script is intended to be useful outside of Travis, where we can't assume that the $PYTHON environment variables is set.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I see! Thanks for context; I'll fix up sometime in the next day.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree that environment variables could be problematic, so I implemented a simple command line argument. But I forgot that Travis has a nice column that tells you what environment variables are set for the build job; with the command line argument only, I see four jobs that all look (superficially) the same.

So what we could do is check if an environment variable is set; if yes, check that it's a valid version of Python and build the wheel for just that version. We could even choose something besides $PYTHON if that might be overloaded.

Up to you. I could definitely see the long-term use for using a CLI for build scripts. I'll let the cli version keep testing on Travis.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or derp, we could keep the CLI argument and pass in a Travis environment variable. That may be the best option.

@AmplabJenkins
Copy link

Merged build finished. Test FAILed.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/2353/
Test FAILed.

@AmplabJenkins
Copy link

Merged build finished. Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/2355/
Test PASSed.

@AmplabJenkins
Copy link

Merged build finished. Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/2357/
Test PASSed.

@robertnishihara
Copy link
Collaborator

@danielsuo, yeah passing in a Travis environment variable on the command line makes sense.

The aggregate time for the runs seems substantially longer now compared with when they are all done together (presumably because of the brew installations..).

@robertnishihara
Copy link
Collaborator

Or perhaps not. I based that statement off of some earlier runs, but the most recent were reasonably quick.

@AmplabJenkins
Copy link

Merged build finished. Test FAILed.

@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/2364/
Test FAILed.

@danielsuo
Copy link
Contributor Author

Yeah, there's a ton of variation in how long runs take. I'm looking at some of the recent builds and honestly, I'm a little jealous. How is everyone passing the MAC_WHEELS build in time?! What are their secrets?

In any case, it sounds like this isn't as high-priority as I thought since my experience was pretty bad. It's also a piecemeal approach to a more general problem (more flexible and portable build spec).

@robertnishihara
Copy link
Collaborator

I think there are periods of time when the MAC_WHEELS build passes fairly consistently, and there are times when it fails consistently (perhaps due to the load on Travis or something like that).

You're right that in general having non-flaky tests is super high priority, so we probably do need to do something like this. It just occurred to me that we should email Travis and see if we can get longer build times, so let me give that a try.

@danielsuo
Copy link
Contributor Author

danielsuo commented Nov 14, 2017 via email

@danielsuo
Copy link
Contributor Author

Tangentially related: turns out we can set and get variables in .travis.yml so we can minimize duplicate code. See example here.

We set a variable via & (e.g., &linux_addons) and get via *.

@robertnishihara
Copy link
Collaborator

Oh that's nice, that seems useful.

@robertnishihara
Copy link
Collaborator

@danielsuo I think it's probably safe to close this issue, what do you think?

I haven't seen any MacOS jobs time out (on the main fork). I have see Travis jobs time out on my own fork, which makes sense because the job times were extended only for the main repository.

@danielsuo
Copy link
Contributor Author

danielsuo commented Nov 27, 2017 via email

@robertnishihara
Copy link
Collaborator

Thanks, those are both good points. I'd prefer to close it for now, but you're right and we will most likely need to revisit this.

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.

3 participants