Skip to content
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

Periodic test against master and canary #187

Closed
mmarchini opened this issue Apr 24, 2018 · 14 comments
Closed

Periodic test against master and canary #187

mmarchini opened this issue Apr 24, 2018 · 14 comments

Comments

@mmarchini
Copy link
Contributor

I think we should have nightly/weekly test runs against master and canary. This would help us know earlier when something breaks. nodejs/node#17685 was an awesome start, but as @bnoordhuis said in the PR it won't catch semantic changes.

I'm willing to setup the infrastructure for it. I just need to know if we can have this on Travis (by using https://docs.travis-ci.com/user/cron-jobs/) or if we should introduce this on Node.js CI.

/cc @joyeecheung

@mmarchini
Copy link
Contributor Author

mmarchini commented Apr 24, 2018

We could even have a status table in the readme 😄

Version Status
6.x build passing
8.x build passing
9.x build passing
10.x build passing
master build passing
canary build passing

or

Version v6.x v8.x v9.x v10.x master canary
Status build passing build passing build passing build passing build passing build passing

@joyeecheung
Copy link
Member

There is nodejs/build#1025 by the way.

I have seen people wgetting nightlies in the scripts to run tests on nightlies with Travis, but that looks rather hacky...

@mmarchini
Copy link
Contributor Author

I saw that PR a while ago, but it seems stalled for some time. I'll take a look and see if we can get some traction on it.

BTW, should we move our current CI infrastructure from Travis to our Jenkins?

@joyeecheung
Copy link
Member

BTW, should we move our current CI infrastructure from Travis to our Jenkins?

@mmarchini That's the plan, but until it happens Travis is better than nothing.

@mmarchini
Copy link
Contributor Author

I have seen people wgetting nightlies in the scripts to run tests on nightlies with Travis, but that looks rather hacky...

I looked into Travis docs and it seems like they use nvm to manage Node.js versions. Maybe we can use it to get nightlies in a not-so-hacky way. I think I'll try to add something to Travis while we don't have support for llnode on Jenkins.

@mmarchini
Copy link
Contributor Author

Proof of Concept: https://github.com/mmarchini/llnode

I've also removed Node.js v4.x, added v10.x (which is broken 😢) and added Mac OS X builds for v6.x, v8.x, v9.x, and v10.x. .travis.yaml grew a lot, but I think it's worth. Nightlies are ignores in the final CI result.

Setting up Cron jobs is straightforward, but need admin access to Travis I think. It can be done in the menu Settings at the end of the page.

I'll open a PR tomorrow. First I wanted to test the Cron thingy.

P.S.: I had to use https://github.com/bjfish/travis-matrix-badges to get badges for each Job since Travis don't have this feature.

@joyeecheung
Copy link
Member

joyeecheung commented May 2, 2018

Setting up Cron jobs is straightforward, but need admin access to Travis I think. It can be done in the menu Settings at the end of the page.

Last time I checked we cannot access the admin page of Travis (mainly because we do not authorize Travis or any other third-party services to read the nodejs organization - that's also the reason why we have to use the GitHub bot to update CI status). Now this restriction makes less sense since we've moved the security repos out of this organization though.

@mmarchini
Copy link
Contributor Author

Last time I checked we cannot access the admin page of Travis

Uh, ok, nightly tests will have to wait for Jenkins then. But we could still update our travis.yaml to cover more versions while Jenkins is not ready for llnode. I'll open a PR later today.

mmarchini pushed a commit to mmarchini/llnode that referenced this issue May 2, 2018
* Reworked travis.yaml to use matrix settings, giving us more control
  over each job settings.
* Remove v4.x, since it's not a supported release line anymore
* Add jobs v10.x
* Add jobs for Mac OS X
* Add jobs for Node.js master and v8-canary builds. Those jobs are
  ignored in the build final result.
* Add a build status table to the README

Ref: nodejs#187
@mmarchini
Copy link
Contributor Author

Crazyish idea: maaaaybe we could contact Travis support, explain the situation and see if they could enable daily Cron jobs against master for us 😶

mmarchini pushed a commit to mmarchini/llnode that referenced this issue May 15, 2018
* Reworked travis.yaml to use matrix settings, giving us more control
  over each job settings.
* Remove v4.x, since it's not a supported release line anymore
* Add jobs v10.x
* Add jobs for Mac OS X
* Add jobs for Node.js master and v8-canary builds. Those jobs are
  ignored in the build final result.
* Add a build status table to the README

Ref: nodejs#187
mmarchini pushed a commit that referenced this issue May 16, 2018
* Reworked travis.yaml to use matrix settings, giving us more control
  over each job settings.
* Remove v4.x, since it's not a supported release line anymore
* Add jobs v10.x
* Add jobs for Mac OS X
* Add jobs for Node.js master and v8-canary builds. Those jobs are
  ignored in the build final result.
* Add a build status table to the README

Ref: #187
@mmarchini
Copy link
Contributor Author

@joyeecheung now that we can properly enable Travis in org repositories, should we still migrate to Jenkins or should we stick with Travis?

I think it's a good idea to stay with Travis since it will not inflict more burden on the Build WG and also make our setup a lot easier.

@joyeecheung
Copy link
Member

@mmarchini We can keep Travis because it's automatic, but enabling Jenkins would allow us to test it on more platforms.

(Also I think we are trying to add Travis to the core as well, just for a faster check)

@mmarchini
Copy link
Contributor Author

mmarchini commented Jun 18, 2018

Ok, since we don't need the github-bot for Travis anymore (nodejs/github-bot#183), we can properly change settings on Travis now 🎉. I enabled daily runs against llnode master, let's see if it works properly.

We still need to update the labels on README.md to reflect the status from https://travis-ci.com/ instead of https://travis-ci.org/.

P.S.: @joyeecheung I'm not sure if I should have access to Travis settings, but I have 🤔

@joyeecheung
Copy link
Member

@mmarchini I guess if you have write access to this repo, then you can have access to Travis?

@mmarchini
Copy link
Contributor Author

Waiting for bjfish/travis-matrix-badges#9 to land before updating our README badges.

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

No branches or pull requests

2 participants