{"action":"created","issue":{"url":"https://api.github.com/repos/neovim/neovim/issues/2145","labels_url":"https://api.github.com/repos/neovim/neovim/issues/2145/labels{/name}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/2145/comments","events_url":"https://api.github.com/repos/neovim/neovim/issues/2145/events","html_url":"https://github.com/neovim/neovim/issues/2145","id":61218585,"number":2145,"title":"Alternate CI system...","user":{"login":"jszakmeister","id":448087,"avatar_url":"https://avatars.githubusercontent.com/u/448087?v=3","gravatar_id":"","url":"https://api.github.com/users/jszakmeister","html_url":"https://github.com/jszakmeister","followers_url":"https://api.github.com/users/jszakmeister/followers","following_url":"https://api.github.com/users/jszakmeister/following{/other_user}","gists_url":"https://api.github.com/users/jszakmeister/gists{/gist_id}","starred_url":"https://api.github.com/users/jszakmeister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jszakmeister/subscriptions","organizations_url":"https://api.github.com/users/jszakmeister/orgs","repos_url":"https://api.github.com/users/jszakmeister/repos","events_url":"https://api.github.com/users/jszakmeister/events{/privacy}","received_events_url":"https://api.github.com/users/jszakmeister/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/neovim/neovim/labels/buildsystem","name":"buildsystem","color":"eb6420"},{"url":"https://api.github.com/repos/neovim/neovim/labels/tests","name":"tests","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-03-13T20:17:30Z","updated_at":"2015-03-14T00:13:56Z","closed_at":null,"body":"Travis CI is great--it's free and gives you a lot of control.  However, it doesn't support many platforms and this has grown frustrating as we sometimes break things for other operating systems.  This still isn't done, but I've been working on getting an alternate CI system up and running.  Just this week I purchased a VPS and set it all up: http://neovim-qb.szakmeister.net/overview/10\r\n\r\nAt the moment, I have all 64-bit slaves for Ubuntu 12.04, FreeBSD 10, and Mac OS X Yosemite.  My hope is to add more in the future (perhaps Windows and some 32-bit builds).  It is *not* doing everything that we are on Travis yet (and I'm not entirely sure we want to).  I also need to do a little more work to make sure everything comes up in case of power failures, etc.  I'd also like to have at least one redundant node for each platform, just in case some go offline for some reason (2 of them are currently VMs, so if one goes away, the other is likely to go away too).  Hopefully, I'll get my hands on some more hardware to do this with.\r\n\r\nMy hope is to tie it in to the pull request and have it test pull requests too (so people know about breaking other platforms).  I'm a bit gun shy at the moment, because once I enable that feature it's going to queue a large number of builds.  I've been working with PMEase to smooth some wrinkles too (for our report processing and what not).  And we have PMEase to thanks for our free license to support our project.\r\n\r\nAt any rate, I just wanted to share and see what everyone thinks."},"comment":{"url":"https://api.github.com/repos/neovim/neovim/issues/comments/79558241","html_url":"https://github.com/neovim/neovim/issues/2145#issuecomment-79558241","issue_url":"https://api.github.com/repos/neovim/neovim/issues/2145","id":79558241,"user":{"login":"jszakmeister","id":448087,"avatar_url":"https://avatars.githubusercontent.com/u/448087?v=3","gravatar_id":"","url":"https://api.github.com/users/jszakmeister","html_url":"https://github.com/jszakmeister","followers_url":"https://api.github.com/users/jszakmeister/followers","following_url":"https://api.github.com/users/jszakmeister/following{/other_user}","gists_url":"https://api.github.com/users/jszakmeister/gists{/gist_id}","starred_url":"https://api.github.com/users/jszakmeister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jszakmeister/subscriptions","organizations_url":"https://api.github.com/users/jszakmeister/orgs","repos_url":"https://api.github.com/users/jszakmeister/repos","events_url":"https://api.github.com/users/jszakmeister/events{/privacy}","received_events_url":"https://api.github.com/users/jszakmeister/received_events","type":"User","site_admin":false},"created_at":"2015-03-14T00:13:56Z","updated_at":"2015-03-14T00:13:56Z","body":"> Why? If I was running ad-hoc CI service I would create a script that creates a VM image once with all necessary dependencies and use the result, rerunning the script rarely.\r\n\r\nI was simply trying to point out that comparing QuickBuild and Travis is a bit like comparing apples and oranges.  They're both fruit, but are different in many ways.\r\n\r\nThe fact that Travis gives you a clean image each time is nice.  If you screw up badly, it won't affect a build later.  The image is reset and the build can run again fresh and clean.  It also makes it possible to install stuff without a care about how you are affecting the overall system--it'll get cleaned up later.  You have a greater capacity to mess things up and recover from it.\r\n\r\nWith QuickBuild, we have to make sure to clean up after ourselves--QB doesn't know or care about VMs.  This probably means just cleaning the workspace, but if we start installing things all over the system, then it could get more interesting.  If we bork the system, then we have to rebuild it."}}