Skip to content
This repository has been archived by the owner on Feb 3, 2023. It is now read-only.

swarm travis #775

Merged
merged 124 commits into from
Dec 19, 2018
Merged

swarm travis #775

merged 124 commits into from
Dec 19, 2018

Conversation

thedavidmeister
Copy link
Contributor

@thedavidmeister thedavidmeister commented Dec 18, 2018

changes

  • turns travis into a swarm of builds
  • turns on thinlto and incremental builds (i think it works?)
  • utterly thrashes total build time up 2.5 hours
  • brings wall time down to ~30 mins cold and 17.5 mins warm
  • introduces a cfg( feature = "broken-tests") flag so we can track and repair slow/flaky/broken tests in a structured way without just commenting them straight out
    • replaced some not(windows) attributes with this instead

obviously this only really works while we have many builds

these changes essentially make it so we can take advantage of the 13 builds we have and keep them busy adding value while we wait for upstream fixes

reason for not appveyor

  • absolute max builds in cloud = 4, but only 1 on free account, even "pro" is only 2 builds
  • cache limit is shared across all builds and is 1GB up to 5GB
  • cache is fast but...
    • incremental builds make avoiding recompilation reliable but blow up cache limit
    • debug builds are too big
    • --release builds are smaller but don't often recompile
    • saw odd behaviour with unreliable caching
    • silent fails and bugs make caching unpredictable
  • compilation is sloooow, windows in general seems to be slow for compilation
  • 2 cpus only
  • overall we end up right back at 40-50 minutes for useful work :(

followups


notes duing testing

pros

  • logs work, keeps most recent 2000 LOC https://ci.appveyor.com/project/thedavidmeister/holochain-rust/builds/21081130
  • seems faster than travis
  • seems to be what pretty much everyone in rust is using for windows, so can "borrow" config from elsewhere
  • caching seems to work with recompilation/downloads
  • looks nicer than travis (imo)
  • has an on-premesis enterprise license we could use with our own metal

cons

notes

@thedavidmeister thedavidmeister changed the title WIP: add appveyor yml swarm travis Dec 19, 2018
Copy link
Collaborator

@lucksus lucksus left a comment

Choose a reason for hiding this comment

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

Great!
Is feature "broken-tests" a thing? I can't find a custom definition for that...

Copy link
Member

@zippy zippy left a comment

Choose a reason for hiding this comment

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

Woot!!

@zippy zippy merged commit e0b3d35 into holochain:develop Dec 19, 2018
@zippy zippy removed the review label Dec 19, 2018
@thedavidmeister
Copy link
Contributor Author

@lucksus iirc https://doc.rust-lang.org/1.5.0/book/conditional-compilation.html means we can send --cfg feature="broken-tests" to rustc

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants