Skip to content

Conversation

@hybrist
Copy link

@hybrist hybrist commented Oct 30, 2017

Highly WIP but I guess it's better to put it here before I lose my local docker container...

  • Figure out if there's a maintainable way to do the multi-arch builds
  • Support build against nightlies (quick hack: just support ORG_MIRROR via param?)
  • Support setting the commit/PR status (optional)

See:

hybrist

This comment was marked as off-topic.

hybrist

This comment was marked as off-topic.

gibfahn

This comment was marked as off-topic.

@hybrist
Copy link
Author

hybrist commented Oct 31, 2017

I'm really tempted to walk back on the declarative syntax here given the amount of repetition once all possible architectures are added. Unless we'd move that logic to an inline script {} section and not model it as parallel stages. Would have to see how that would be rendered in the UI.

@refack
Copy link
Contributor

refack commented Oct 31, 2017

This is what came out https://ci.nodejs.org/job/node-inspect/2/flowGraphTable/
(first steps are checking out the pipeline script itself from @jkrems's fork)

@hybrist
Copy link
Author

hybrist commented Oct 31, 2017

Can someone give nodejs/node-inspect#53 a quick look to get the latest tap into master?

@hybrist
Copy link
Author

hybrist commented Oct 31, 2017

For reference, here's how an example run renders in blue ocean when I was testing this script locally:

screen shot 2017-10-31 at 1 44 44 pm

That view makes the job output a lot easier to consume. Unfortunately the out-of-the-box experience of looking at parallel stages in Jenkins is pretty bad (by which I mean pretty much unusable). :(

@refack
Copy link
Contributor

refack commented Nov 1, 2017

That view makes the job output a lot easier to consume. Unfortunately the out-of-the-box experience of looking at parallel stages in Jenkins is pretty bad (by which I mean pretty much unusable). :(

It's not that bad, it's just not trivial to find:

@hybrist
Copy link
Author

hybrist commented Nov 1, 2017

Yes, I know. But with non-trivial workflows (e.g. parallel + anything happening afterwards) the flattened stage view becomes super confusing [especially if any stage name isn't globally unique]. This isn't a problem yet here (since it has just two fake "architectures" right now and nothing happening afterwards) but it won't get any better the more complex the workflow gets. Though maybe it'll be fine for node's builds. I might be scared by our internal deployment pipeline builds (with multiple validation stages consisting of parallelized things).

@refack
Copy link
Contributor

refack commented Nov 1, 2017

@jkrems the log visibility issue was brought up by @joaocgreis and AFAIK is the last hindrance for full adoption.
But as I see it we can continue to use MultiJob. With the current setup the fan-out is the last step of each sub-job and any other steps after that are in a new sub-job. So the flattened log is not that bad, just requires learning where to look for the failures.

On the other hand the step tree:
image
Allows for a not log-reading-dependant way to quickly figure out what failed.


tl;dr IMHO we should move away from log-based-groking to using parsing plugins (like tap or tap2junit), while also look-for/develop a better log parser.

@hybrist hybrist force-pushed the jk-node-inspect-pipeline branch from 1c9f355 to 4781766 Compare November 8, 2017 15:57
@hybrist hybrist force-pushed the jk-node-inspect-pipeline branch from 696b8c3 to 1fb7b60 Compare November 8, 2017 16:19
@sam-github
Copy link
Contributor

Stale pipeline PR related to the pipeline experiment.

@sam-github sam-github closed this Jan 28, 2020
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

Successfully merging this pull request may close these issues.

4 participants