-
Notifications
You must be signed in to change notification settings - Fork 25
Community CI service #11
Comments
sounds like a great idea where do we get started? |
My guess is that we need a service somewhere that gets hooks from github on changes (or npm on publish) and triggers a travis build of everything and then published the status on a page. The service can live on hapijs.com and the code should live in a repo under the hapijs org. If you want to give it a shot, start as your own project and see how far it goes. |
👍 sounds like an awesome idea. I guess the actual CI is not the hardest part, but the registration of packages and tests. @marcus7777 send me a msg if you need help. |
I'll try on weekend :) |
Which CI server were you thinking of using ? |
I'd love to help with this but i'm not quite sure how i've not worked with Travis but i've been reading up on it for a week sorry for not getting back to you all. Thanks @marinintim maybe i can help when you get it started. |
Oh, I was busy at this weekend and didn't touched anything yet. @yonjah, I was thinking about Travis. Need to dig more, yeah. |
@marinintim Haven't had the time to code anything yet just tried to get my head around how it should work. |
@yonjah I would prefer something hosted and simple. |
Need clarification for the flow: It's like reverse deps. |
It won't work if you trigger your builds on commits, new builds should happen only when a new release is pushed to npm, otherwise tests wouldn't take the latest version. |
@Marsup, correct point, thanks. |
@Marsup I thought thats the hole point to have the testes running before releasing a new version. Did anyone got to work on it this weekend ? |
How do you plan on making that work ? Travis installs through npm, if nothing is published I don't see how you get it tested. |
You can set a github repo for npm dependency so commits shouldn't be a problem. |
Let's say |
But I thought that was the point. To always rely on the latest version. If you need to rely on branch names you can do it, but I think conventionally the I guess we can limit the testing after publishing, but then you might only find errors after publishing ( and I guess if many external libs fail you might prefer to fix the changes to be more backward compatible). Any way after going over Travis API today I'm not sure what I thought of doing is possible.
So this basically mean that any repo that is added to the system has to be specifically crafted to work with the system, either having a specific branch that will run the test or that every test will run with the latest version of hapi. So as I can see the system working now, a user will give us a token to allow us to access his Travis system will choose some repos from it he wants to build, and we will just rebuild them whenever we think its necessary. since were not setting any specific variables the user can decide if he wants to run This is kinda annoying but unless we want to use some other CI. It seems like other hosted CI like CircleCI and Semaphore are supporting this feature I'm just not sure how free they are and from what I usually only see Travis being used in open source projects. |
Hapi core repos use branches, most of them have been deleted since the release, but master will probably do. |
I worked on this a bit over the weekend. and the source here It is still in very early stages, but I think its enough to play with. the main thing missing is ui for adding repos and github hooks. curl --data 'url=[GITHUB_URL]&branch=[BRANCH]&test=[TEST_CMD]&report=[FILE.XML]' http://ci.non.co.il/repo this command will return a new repo instance from the db {
"url":"https://github.com/yonjah/hapi-sol.git",
"name":"hapi-sol",
"type":2,
"branch":"latest",
"test_command":"npm run test-xml",
"report_file":"result.xml",
"jobs":[],
"_id":3,
"hook":"http://ci.non.co.il/hooks/3"
} the main thing to notice is the hook url. To add hapi core module (like boom, joi etc.. ) add type=core to the request payload. let me know if you need any help testing this out |
Hey @yonjah can you get on irc in #hapi? Let's talk it out to push this thing forward. I'm arb in there. http://hapijs.com/community for irc information. |
It looks like this could be handled with Travis here shortly based on travis-ci/travis-ci#249 It'd be really nice to use their infrastructure instead of having to maintain a set of infrastructure/code to handle this. |
The hapi ecosystem is getting big, much bigger than anyone can keep track of. This is particularity true for hapi itself. It is becoming very hard to ensure that changes which pass all the hapi tests, are not breaking other modules, including tightly coupled ones like inert (file and directory handlers), h2o2 (proxy handlers), and vision (views engine).
It would be awesome is someone(s) will take on the project of building a community service where people can register their open source work, and every time there is an update (publish or commit, open for debate) on any of the core framework modules, it will test those out.
Some of these projects can be nothing but tests to ensure your private code will not break without exposing it.
The npm package popular is still available...
The text was updated successfully, but these errors were encountered: