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

Switch Travis to Trusty #7920

Merged
merged 6 commits into from Apr 26, 2016

Conversation

Projects
None yet
6 participants
@theuni
Member

theuni commented Apr 21, 2016

I worked with Travis to get the cache flag on my personal repo for testing, and I'm happy to report that all works great (after a day of churning builds).

For some background: Travis has enabled caching for their new infrastructure, but the feature is brand new and not yet generally available. For now it requires a special flag (set on their end) on your repo. Once they're satisfied with its stability, the flag will be granted to everyone. Note that the flag comes with the caveat of invalidating all current caches. That's not a problem for us, other than slowing things down for a few hours. I was primarily worried about unintended side-effects of opting in, so I added it on my own repo for testing before requesting it here.

If there's no reason to delay our move, I'll request the flag for this repo tomorrow (4/21).

Once that's take care of, we can merge this for Trusty goodness. On the day that Xenial is scheduled to be released :p.

Next step is c++11, which should be painless to enable now.

Note that this includes #7792, otherwise the OSX build fails. @laanwj I'm happy to rebase if you'd prefer to merge that first.

@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 21, 2016

Member

Note that the build failed because we currently have a (different) special flag on our repo that force-routes us to the legacy infrastructure for caching. This change will disable that in favor of the new testing flag.

(It may sound convoluted, but this change moves us one step closer towards being a normal repo. Once the caching feature is out of beta, there will be nothing special about us.)

Member

theuni commented Apr 21, 2016

Note that the build failed because we currently have a (different) special flag on our repo that force-routes us to the legacy infrastructure for caching. This change will disable that in favor of the new testing flag.

(It may sound convoluted, but this change moves us one step closer towards being a normal repo. Once the caching feature is out of beta, there will be nothing special about us.)

@MarcoFalke

View changes

Show outdated Hide outdated .travis.yml
@MarcoFalke

This comment has been minimized.

Show comment
Hide comment
@MarcoFalke

MarcoFalke Apr 21, 2016

Member

Awesome! Concept ACK!

Member

MarcoFalke commented Apr 21, 2016

Awesome! Concept ACK!

@MarcoFalke MarcoFalke referenced this pull request Apr 21, 2016

Merged

[qa] Switch to py3 #7814

1 of 1 task complete
@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 21, 2016

Member

@MarcoFalke Just for the sake of being future-proof. It only uses the python2 one at the moment, but I believe the (your?) intention is to move the rpc tests to python3. Just doing python2 for now is fine by me if that's what you'd prefer. I was just saving some future head-scratching when builds fail after the switch.

Edit: Looking at the diff, I now see why you asked. Python was a headache when testing the migration from precise->trusty. I had a theory at one point that python3 was being forced for the rpc tests, which obviously turned out to not be the case. But I left it there since that's where we're headed.

Member

theuni commented Apr 21, 2016

@MarcoFalke Just for the sake of being future-proof. It only uses the python2 one at the moment, but I believe the (your?) intention is to move the rpc tests to python3. Just doing python2 for now is fine by me if that's what you'd prefer. I was just saving some future head-scratching when builds fail after the switch.

Edit: Looking at the diff, I now see why you asked. Python was a headache when testing the migration from precise->trusty. I had a theory at one point that python3 was being forced for the rpc tests, which obviously turned out to not be the case. But I left it there since that's where we're headed.

@gmaxwell

This comment has been minimized.

Show comment
Hide comment
@gmaxwell

gmaxwell Apr 21, 2016

Member

Thanks for working on this.

Member

gmaxwell commented Apr 21, 2016

Thanks for working on this.

laanwj and others added some commits Apr 2, 2016

depends: mac deploy Py3 compatibility
This fixes the gitian MacOSX build, it was broken in #7723.

The patch to `native_mac_alias` should probably make it upstream.
@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 21, 2016

Member

Dropped the python3-zmq packages.

Member

theuni commented Apr 21, 2016

Dropped the python3-zmq packages.

@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 23, 2016

Member

This was delayed because there's a little extra work needed in switching away from our old setup. ETA given from Travis is Monday.

Member

theuni commented Apr 23, 2016

This was delayed because there's a little extra work needed in switching away from our old setup. ETA given from Travis is Monday.

theuni added some commits Apr 26, 2016

depends: enable pre-compiled headers for qt
All trusty compilers work ok with this now, and it shaves a few minutes off of
build time
travis: drop MAKEJOBS=2 for windows compilers
These were only in place because of the old precice mingw toolchain
travis: temporarily disable qt to avoid timeouts
These builds take longer than they did on precise. Disable them now to keep
things working, we can re-enable them after experimentation
travis: Don't disable writing ccache for pull-requests
This was doing more harm than good. The original intention was to speed up
builds, since a PR's ccache results will be thrown away anyway.

However, each PR maintains its own cache, so disabling writes means that
subsequent pushes don't benefit from the fresh cache. This is significant when
(for example) many headers are touched in a PR, then the PR is updated. With
this change, the updated PR will take advantage of the cache generated during
the PR's previous build.
@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 26, 2016

Member

Ok, finally all green and cache-enabled.

I disabled a few qt builds because they seem to take longer on this infrastructure than before. We can investigate and turn them back on asap.

For now, until this is merged, PRs will be unusually slow, so it's probably best to go ahead with this now and work through the regressions.

Member

theuni commented Apr 26, 2016

Ok, finally all green and cache-enabled.

I disabled a few qt builds because they seem to take longer on this infrastructure than before. We can investigate and turn them back on asap.

For now, until this is merged, PRs will be unusually slow, so it's probably best to go ahead with this now and work through the regressions.

@theuni theuni changed the title from Do not merge yet: Switch Travis to Trusty to Switch Travis to Trusty Apr 26, 2016

@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 26, 2016

Member

To expand on the "PRs will be unusually slow" bit above:

In removing the special bits from our repo, all caches have been invalidated. In theory, precise caches will be regenerated for subsequent PRs, but I'm nervous about that actually happening seamlessly on the deprecated platform.

Even if it does work without issue, PRs will be slow until something is pushed into master. When a PR is created, the build cache is taken from its source branch (master), and copied into the PR. From there, the PR updates its own cache with each update.

Right now we have no master cache, and no PR caches. So until there's something to pull from master, each PR will be rebuilding from scratch. Also, once we do pull the trigger on this, it will essentially invalidate all caches again, because all dependencies will be rebuilt for the new toolchains.

tl;dr: Need to push something into master asap to avoid slow builds all day. May as well push this one, to avoid a repeat.

Member

theuni commented Apr 26, 2016

To expand on the "PRs will be unusually slow" bit above:

In removing the special bits from our repo, all caches have been invalidated. In theory, precise caches will be regenerated for subsequent PRs, but I'm nervous about that actually happening seamlessly on the deprecated platform.

Even if it does work without issue, PRs will be slow until something is pushed into master. When a PR is created, the build cache is taken from its source branch (master), and copied into the PR. From there, the PR updates its own cache with each update.

Right now we have no master cache, and no PR caches. So until there's something to pull from master, each PR will be rebuilding from scratch. Also, once we do pull the trigger on this, it will essentially invalidate all caches again, because all dependencies will be rebuilt for the new toolchains.

tl;dr: Need to push something into master asap to avoid slow builds all day. May as well push this one, to avoid a repeat.

@MarcoFalke

This comment has been minimized.

Show comment
Hide comment
@MarcoFalke

MarcoFalke Apr 26, 2016

Member

ACK on merging today.

Member

MarcoFalke commented Apr 26, 2016

ACK on merging today.

@btcdrak

This comment has been minimized.

Show comment
Hide comment
@btcdrak

btcdrak Apr 26, 2016

Member

ACK

Member

btcdrak commented Apr 26, 2016

ACK

@jonasschnelli

This comment has been minimized.

Show comment
Hide comment
@jonasschnelli
Member

jonasschnelli commented Apr 26, 2016

ACK 174023c

@laanwj laanwj merged commit a33b7c9 into bitcoin:master Apr 26, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

laanwj added a commit that referenced this pull request Apr 26, 2016

Merge #7920: Switch Travis to Trusty
a33b7c9 travis: temporarily disable qt to avoid timeouts (Cory Fields)
174023c travis: Don't disable writing ccache for pull-requests (Cory Fields)
cf77fcd travis: drop MAKEJOBS=2 for windows compilers (Cory Fields)
9267a47 depends: enable pre-compiled headers for qt (Cory Fields)
06fdffd travis: switch to Trusty (Cory Fields)
a6666b2 depends: mac deploy Py3 compatibility (Wladimir J. van der Laan)
@btcdrak

This comment has been minimized.

Show comment
Hide comment
@btcdrak

btcdrak Apr 26, 2016

Member

@theuni Does this have to be backported as well?

Member

btcdrak commented Apr 26, 2016

@theuni Does this have to be backported as well?

@theuni

This comment has been minimized.

Show comment
Hide comment
@theuni

theuni Apr 26, 2016

Member

@btcdrak Yes, the same issues apply to the other branches.

Member

theuni commented Apr 26, 2016

@btcdrak Yes, the same issues apply to the other branches.

MarcoFalke added a commit to MarcoFalke/bitcoin that referenced this pull request Apr 27, 2016

braydonf pushed a commit to braydonf/bitcoin that referenced this pull request May 12, 2016

travis: switch to Trusty
Github-Pull: #7920
Rebased-From: 06fdffd, 9267a47, cf77fcd, 174023c, a33b7c9
Cherry-pick-From: 564aaa2

braydonf pushed a commit to braydonf/bitcoin that referenced this pull request Jun 2, 2016

travis: switch to Trusty
Github-Pull: #7920
Rebased-From: 06fdffd, 9267a47, cf77fcd, 174023c, a33b7c9
Cherry-pick-From: 564aaa2

thokon00 added a commit to faircoin/faircoin that referenced this pull request Jun 28, 2016

braydonf pushed a commit to braydonf/bitcoin that referenced this pull request Oct 4, 2016

travis: switch to Trusty
Github-Pull: #7920
Rebased-From: 06fdffd, 9267a47, cf77fcd, 174023c, a33b7c9
Cherry-pick-From: 564aaa2

nomnombtc added a commit to nomnombtc/bitcoin that referenced this pull request Nov 22, 2016

travis: switch to Trusty
Github-Pull: #7920
Rebased-From: 06fdffd, 9267a47, cf77fcd, 174023c, a33b7c9
Cherry-pick-From: 564aaa2

codablock added a commit to codablock/dash that referenced this pull request Sep 16, 2017

Merge #7920: Switch Travis to Trusty
a33b7c9 travis: temporarily disable qt to avoid timeouts (Cory Fields)
174023c travis: Don't disable writing ccache for pull-requests (Cory Fields)
cf77fcd travis: drop MAKEJOBS=2 for windows compilers (Cory Fields)
9267a47 depends: enable pre-compiled headers for qt (Cory Fields)
06fdffd travis: switch to Trusty (Cory Fields)
a6666b2 depends: mac deploy Py3 compatibility (Wladimir J. van der Laan)

codablock added a commit to codablock/dash that referenced this pull request Sep 19, 2017

Merge #7920: Switch Travis to Trusty
a33b7c9 travis: temporarily disable qt to avoid timeouts (Cory Fields)
174023c travis: Don't disable writing ccache for pull-requests (Cory Fields)
cf77fcd travis: drop MAKEJOBS=2 for windows compilers (Cory Fields)
9267a47 depends: enable pre-compiled headers for qt (Cory Fields)
06fdffd travis: switch to Trusty (Cory Fields)
a6666b2 depends: mac deploy Py3 compatibility (Wladimir J. van der Laan)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment