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

Unfold make-ci in jenkins #229

Closed
jbergstroem opened this issue Oct 26, 2015 · 12 comments
Closed

Unfold make-ci in jenkins #229

jbergstroem opened this issue Oct 26, 2015 · 12 comments

Comments

@jbergstroem
Copy link
Member

We recently introduced a convenience rule to configure, build and test node in one makefile step. This is good for $lazy, but bad in terms of feedback; something that got visible while I was working on scripts that notify github of progress. As it is now, we don't know what part of the build process that fails.

I'd like to unfold this again to improve the feedback to a user. The benefit of this being able to update a PR at gihub stating the compile phase failed, three tests failed instead of just failed. The main downside is expanding build steps at Jenkins.

Thoughts?

@orangemocha
Copy link

I think that sounds good. We need to be able to experiment / change things in Jenkins quickly anyway.

BTW, the run-ci rule was introduced because v0.x needed to invoke configure with an additional argument IIRC. Please make sure that you still support all branches when you unfold.

@jbergstroem
Copy link
Member Author

Hm, didn't know that. I'll have a deeper look before I do any changes.

@jbergstroem
Copy link
Member Author

so:

$ $(PYTHON) ./configure $(CONFIG_FLAGS)

..can't really see where CONFIG_FLAGS is defined. Guessing jenkins?

@joaocgreis
Copy link
Member

I don't know if it is the only use, but at least that's needed for https://ci.nodejs.org/job/iojs+release/

@orangemocha
Copy link

I am planning it to also use it to enable debug builds in CI (nodejs/node#3293) as seen in https://ci.nodejs.org/job/orangemocha-test-commit-linux/2/

You could also use it to pass the appropriate flags for v0.x.

@jbergstroem
Copy link
Member Author

I can't see anything stopping us from doing something similar in the configure step; we'd have to move some logic away from the generic build step in jenkins but that would be it.

@rmg
Copy link

rmg commented Oct 28, 2015

The problem with changing this target is that either changes need to be backported to previous release branches so the jobs can stay generic or each release branch gets and maintains its own snowflake jenkins job but without the benefit of storing it in that branch.

It's entirely possible these aren't actually problems at the relatively small scale of node (repos * jobs * branches), but that was the perspective I was coming from.

@jbergstroem
Copy link
Member Author

@rmg said:
either changes need to be backported to previous release branches so the jobs can stay generic or each release branch gets and maintains its own snowflake jenkins job

Do they really though? What i would do is take this -- which today is one invoked step in jenkins (slightly different based on which job we have):

$ $(PYTHON) ./configure $(CONFIG_FLAGS)
$ $(MAKE)
$ $(MAKE) test-ci

..then turn that into three jobs. The idea is not to touch anything in the codebase, just split the steps up in jenkins.

For now, lets stick with node-test-* only to avoid any issues then.

@rmg
Copy link

rmg commented Oct 28, 2015

$ $(PYTHON) ./configure $(CONFIG_FLAGS)
$ $(MAKE)
$ $(MAKE) test-ci

I haven't kept up with what the jobs are actually doing and what each branch supports. If that's already the lowest common denominator then I have no concerns. :-)

@orangemocha
Copy link

It's probably not too often that we need to alter that structure, but when we do then it is a bit of a pain to make sure all branches are updated. If we wanted to move away from that approach, we could consider doing branch-specific logic in Jenkins through if statements in the scripts. This is already the case with this change as run-ci invokes configure with different parameters on v0.x.

I wouldn't go as far as having separate jobs for each branch. Maintaining multiple jobs is pain with the Jenkins UI and we already have different instances for each platform. Having one job for each of platforms * branches combinations would be a nightmare.

@Trott
Copy link
Member

Trott commented Mar 30, 2018

@nodejs/build Should this remain open?

@gibfahn
Copy link
Member

gibfahn commented Apr 3, 2018

I don't think we actually still use make-ci, so I think this can be closed.

(if I'm wrong please reopen).

@gibfahn gibfahn closed this as completed Apr 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants