twisted-infra / braid

Automation scripts for twistedmatrix.com
Other
6 stars 12 forks source link

Switch macOS builder to pyenv #250

Closed markrwilliams closed 6 years ago

markrwilliams commented 6 years ago

@mithrandi pointed out that incremental fails to install because setuptools downloads requirements in a distribution's setup_requires, not pip. That means we need a Python installation whose (urllib.request|urllib2).urlopen can speak TLS 1.2 to PyPI.org.

I've installed Python 2.7.14, 3.5.3, and 3.6.5 under the buildbot user via pyenv; pyenv evidently downloads OpenSSL 1.0.2 and links _ssl against it on older macOS releases:

https://github.com/pyenv/pyenv/blob/b960f863ccf81e1311706b0976fde78e58141704/plugins/python-build/share/python-build/3.6.5#L2 https://github.com/pyenv/pyenv/blob/b960f863ccf81e1311706b0976fde78e58141704/plugins/python-build/bin/python-build#L1479-L1484

I did not use brew because other things have been installed in /usr/local/bin, and I want everything I'm doing to be reversible.

adiroiban commented 6 years ago

Thanks for working on this. Freel free to apply the changes and give it a spin, to check that it works.

I suggest to add the info about pyenv and not using homebrew on https://twistedmatrix.com/trac/wiki/ContinuousIntegration/Buildslaves/d3 so that when someone else will look at the d3 slave can get an overview of the system and not have to check past PR to find how it is setup.

Thanks again!

markrwilliams commented 6 years ago

@adiroiban Good idea about updating the wiki! I've done it.

I've followed the two steps indicated in the wiki and also updated the master.cfg to include them.

Note that updating the buildbot configuration requires specifying the production environment. Do that like so:

fab config.production buildbot.reconfigure

Note that this implies -H bb-master@buildbot.twistedmatrix.com, so you'll need to have your public key in ~bb-master/.ssh/authorized_keys.

This configuration seemed to work, but I'm not sure this ran during a brown out. At the very least this should go in because the builder's name is now accurate.

I've also changed the required build for twisted/twisted's trunk branch from buildbot/osx10.10-py2.7-coverage to buildbot/osx10.11-py2.7-coverage, as a consequence of that name change.