Open rirze opened 8 years ago
I wouldn't worry about Mac OS; that's where I develop and I'm running tox
every time before I push. 🎉 Besides, Mac OS is close enough to Linux for all intents and purposes, at least where Python is concerned. I've been developing with Python on my Mac for years, and it's extraordinarily rare that I encounter cross-platform compatibility issues with Linux.
Windows, on the other hand… hrmm…
I have an idea. Hang on while I give it a try…
Darn. It looks like Travis-CI's support for specifying OS-specific things is still flaky. They don't have any Windows support, and their Mac support doesn't appears to work with the default Python without some goofy tricks in .travis.yml
.
It looks like appveyor supports Windows builds. I'm trying to set that up with my account now…
Well, appveyor sort of works…
https://ci.appveyor.com/project/infinitewarp/poketrainer/build/1.0.3
…but it looks like I need to figure out a way to either get a build machine that has both py2 and py3 on it, or I need to figure out how to get tox
to only execute one of the two based on the environment they provide.
Oh man, this brings back nightmares...
I remember giving up after writing up a config file. Honestly, if travis still hasn't brought around good Windows support, then I prefer not caring about Windows builds. It seems like too much of a hassle.
OMG I think it's working…
https://ci.appveyor.com/project/infinitewarp/poketrainer/build/1.0.10
py27-32bit worked. waiting for the others! 🎉
Both py27 builds passed, and both py35 builds failed with unexpected isort
complaints. I'll give it a few more tries, but yeah, I don't personally need Windows build support either. Would be happy to review an incoming pull request from someone else who has more experience there, though.
A few more tweaks later and I think I have it working for py27-32, py27-64, py35-32, and py35-64 on Windows. I'm going to give it a rest for tonight, and I'll review it all once more in the morning before opening a pull request here.
Here's a PR I made against my own fork so you can see the integration: https://github.com/infinitewarp/poketrainer/pull/3
It generally works well. It's a tad slower than Travis, and there are twice as many builds. One potential problem I've noticed is that Appveyor doesn't seem to recognize when force pushes happen, but Travis CI does.
Of course, for this to be really effective, we need to build some actual unit tests. I wrote one test a while back to get the ball rolling, but the ball promptly stopped, rolled backwards, and deflated. 😝
I was thinking, we should expand travis ci to test against windows and mac os environments. That way, we can fix any cross-platform issues before they're released.
Any thoughts?
(#517 got me thinking about this, but is an example of an issue that wouldn't have been brought up by travis)