GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — doc: require CI status indicator in PRs by seishun · Pull Request #17151 · nodejs/node

Conversation

@seishun

@seishun seishun commented Nov 20, 2017

Copy link
Copy Markdown
Contributor

Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

Examples from the last 6 months:

6645126
f912080
aa011a1
a6973a3

Checklist
  • commit message follows commit guidelines
Affected core subsystem(s)

doc

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@seishun
doc: require CI status indicator in PRs
982dd05
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.
@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to Node.js documentation. label Nov 20, 2017
@targos

targos commented Nov 20, 2017

Copy link
Copy Markdown
Member

what is a status indicator?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@seishun

seishun commented Nov 20, 2017

Copy link
Copy Markdown
Contributor Author

The "All checks have passed" thing here, for example: #14998

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@apapirovski

apapirovski commented Nov 20, 2017

Copy link
Copy Markdown
Contributor

I don't know... this is tricky. It wasn't working for a long time so it's not like it would've helped with the commits listed above. Also, sometimes people forget to check the box when running a CI. The language already in there pretty much mandates that a CI should be run before landing a pull request. People just overlook it from time to time.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@targos

targos commented Nov 20, 2017

Copy link
Copy Markdown
Member

What about checking POST_STATUS_TO_PR by default in the CI job? The risk to have no status would be much lower.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@seishun

seishun commented Nov 20, 2017

Copy link
Copy Markdown
Contributor Author

@apapirovski

It wasn't working for a long time so it's not like it would've helped with the commits listed above.

True, but it works now.

Also, sometimes people forget to check the box when running a CI.

Maybe, but I think there are people who don't check it because they don't see the need.

The language already in there pretty much mandates that a CI should be run before landing a pull request. People just overlook it from time to time.

Yes, and I think it's harder to overlook a big red cross than a URL.

@targos

Agree, but it won't hurt to update the language too, so that people don't uncheck it.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

targos
targos approved these changes Nov 20, 2017
View reviewed changes
Comment thread COLLABORATOR_GUIDE.md Outdated
All pull requests that modify executable code should be subjected to
continuous integration tests on the
[project CI server](https://ci.nodejs.org/).
The pull request should have a CI status indicator.

@targos targos Nov 20, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: If the CI job has the option, the pull request should have a CI status indicator.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@seishun seishun Nov 20, 2017

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about just adding "if possible"?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@targos targos Nov 20, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Fishrock123

Fishrock123 commented Nov 20, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

True, but it works now.

Oh? I'm running #17153 as a test to myself because I kinda don't believe it yet haha.

This seems like a good idea though.

What about docs PRs? I'm not certain it is widely known how to get node-test-lint to post to a PR. Or maybe we should create a wrapper job around it?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@seishun

seishun commented Nov 20, 2017

Copy link
Copy Markdown
Contributor Author

What about docs PRs? I'm not certain it is widely known how to get node-test-lint to post to a PR. Or maybe we should create a wrapper job around it?

CI isn't required for docs PRs, is it? Or are you suggesting to require it?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@richardlau

richardlau commented Nov 20, 2017

Copy link
Copy Markdown
Member

What about docs PRs? I'm not certain it is widely known how to get node-test-lint to post to a PR. Or maybe we should create a wrapper job around it?

CI isn't required for docs PRs, is it? Or are you suggesting to require it?

Now that we lint the docs we probably should be requiring CI for docs PRs.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@seishun

seishun commented Nov 20, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

Perhaps, but I'd say it should be a separate issue. The idea of this PR is to require CI status indicator if CI is required.

richardlau reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@seishun
if possible
1809931
@vsemozhetbyt

vsemozhetbyt commented Nov 20, 2017

Copy link
Copy Markdown
Contributor

Now we build docs in test jobs, don't we? So the full test run is needed for docs, right?

maclover7 and gibfahn reacted with thumbs up emoji
All reactions
  • 👍 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@maclover7

maclover7 commented Nov 20, 2017

Copy link
Copy Markdown
Contributor

Hmm, this is also mentioned in the Accepting Modifications section, maybe it would be better to change usually must also be tested with CI to be more forceful?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@joyeecheung

joyeecheung commented Nov 21, 2017

Copy link
Copy Markdown
Member

Mind that sometimes the bot seem to fail to report certain failures, I remember there was one in #14891 where linux failed with a relavent crash but it's green in the status updated by the bot.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@seishun

seishun commented Nov 21, 2017

Copy link
Copy Markdown
Contributor Author

For some reason the test/linux link points to https://ci.nodejs.org/job/node-test-commit-linux/nodes=alpine36-container-x64/14195/. cc @nodejs/build

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rvagg

rvagg commented Nov 23, 2017

Copy link
Copy Markdown
Member

Yeah, so I figured this out when tinkering with node-test-commit-linux-linked because the same thing was happening.

What's going on is that it's submitting the build status for each node in the job not just for the parent job itself. For node-test-commit-linux we now have 20 nodes running each time so it's submitting status 20 times for each one and the final status will come from the final node that finishes which may or may not reflect the overall failure status.

For node-test-linux-linked I fixed it by just submitting a different status for each node since they're different anyway (openssl 1.1.0, fips and debug for now) by pulling out a custom label before any status is submitted into a $STATUS_LABEL:

echo $nodes | sed -E 's/.*_(\w+)_x64$/STATUS_LABEL=test\/linux-\1/g' > env.properties

So you can see test/linux-debug and test/linux-openssl110 and test/linux-fips in the status.

For node-test-commit-link we don't want to do that (I think), want an overall status. Unfortunately, a Jenkins job is set up to run on each node, the parent node is just there to do the orchestration and I'm not aware of how you can tie specific execution to that orchestration executor.

@maclover7 this is yours isn't it? Any ideas?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rvagg rvagg mentioned this pull request Nov 23, 2017
jenkins: add node-test-commit-pre nodejs/build#1004
Closed
@gibfahn

gibfahn commented Nov 23, 2017

Copy link
Copy Markdown
Member

For node-test-commit-link we don't want to do that (I think), want an overall status. Unfortunately, a Jenkins job is set up to run on each node, the parent node is just there to do the orchestration and I'm not aware of how you can tie specific execution to that orchestration executor.

I'm not sure there is a way to do that in the existing Jenkins UI.

You could do it using pipelines though, if you trigger a multi-config job through a pipeline, the pipeline receives the aggregated set of results.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rvagg

rvagg commented Nov 23, 2017

Copy link
Copy Markdown
Member

An alternative is to make the bot smarter, it could count the number of "pending" for a given job+label and only report final status to github once it's received that many statuses from jenkins workers.

This raises another interesting question though—isn't the bot supposed to only listen to the two jenkins-workspace nodes and ignore HTTP status posts from other hosts? These should be coming in from all of the various workers we have running. Unless I'm misunderstanding what's happening. Perhaps some logs from the bot might help if we can generate them? @nodejs/automation

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@phillipj

phillipj commented Nov 23, 2017

Copy link
Copy Markdown
Member

This raises another interesting question though—isn't the bot supposed to only listen to the two jenkins-workspace nodes and ignore HTTP status posts from other hosts?

Yes, that's the thought at least. The whitelist hasn't been activated yet, but it's ready to go now that nodejs/build#985 is approved.

To avoid anyone on the interwebs to send requests directly to the bot, we've been thinking the bot either have to have a whitelist or a secret.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@maclover7 maclover7 mentioned this pull request Nov 23, 2017
github-bot: add IPs of Jenkins workers nodejs/build#985
Merged
@maclover7

maclover7 commented Nov 23, 2017

Copy link
Copy Markdown
Contributor

@rvagg Let's see if nodejs/build#985 fixes the issue, and if not we can revisit. Pipelines will take care of all of this, but that's obviously not being rolled out for a little while. Should an issue at nodejs/build be opened about this?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MylesBorins
MylesBorins force-pushed the master branch from b7405ab to 7f086dd Compare December 8, 2017 16:37
@BridgeAR

BridgeAR commented Dec 10, 2017

Copy link
Copy Markdown
Member

Any progress here? I do not have a strong opinion about this but nothing new has happened for two weeks. Shall we just land it? Or is there a strong opposition and we might just close it?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

joyeecheung
joyeecheung approved these changes Dec 22, 2017
View reviewed changes
gibfahn
gibfahn approved these changes Dec 22, 2017
View reviewed changes

@gibfahn gibfahn left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems uncontroversial.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
maclover7
maclover7 approved these changes Dec 22, 2017
View reviewed changes
tniessen
tniessen approved these changes Dec 22, 2017
View reviewed changes
@joyeecheung joyeecheung added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Dec 23, 2017
@joyeecheung

joyeecheung commented Dec 23, 2017

Copy link
Copy Markdown
Member

Landed in ae2bed9, thanks!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@joyeecheung joyeecheung closed this Dec 23, 2017
@joyeecheung joyeecheung removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Dec 23, 2017
joyeecheung pushed a commit that referenced this pull request Dec 23, 2017
@seishun @joyeecheung
doc: require CI status indicator in PRs
ae2bed9
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
@seishun
seishun deleted the must-post-ci branch December 23, 2017 16:11
MylesBorins pushed a commit that referenced this pull request Jan 8, 2018
@seishun @MylesBorins
doc: require CI status indicator in PRs
7d9661a
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
MylesBorins pushed a commit that referenced this pull request Jan 9, 2018
@seishun @MylesBorins
doc: require CI status indicator in PRs
4815408
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
MylesBorins pushed a commit that referenced this pull request Jan 9, 2018
@seishun @MylesBorins
doc: require CI status indicator in PRs
d4666d0
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
@MylesBorins MylesBorins mentioned this pull request Jan 10, 2018
v9.4.0 proposal #18069
Merged
@gibfahn gibfahn added land-on-v6.x labels Jan 24, 2018
gibfahn pushed a commit that referenced this pull request Jan 24, 2018
@seishun @gibfahn
doc: require CI status indicator in PRs
150bda4
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
gibfahn pushed a commit that referenced this pull request Jan 24, 2018
@seishun @gibfahn
doc: require CI status indicator in PRs
5e71116
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
gibfahn pushed a commit that referenced this pull request Jan 24, 2018
@seishun @gibfahn
doc: require CI status indicator in PRs
81cc0e7
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
@MylesBorins MylesBorins mentioned this pull request Jan 24, 2018
v6.13.0 proposal #18342
Merged
MylesBorins pushed a commit that referenced this pull request Feb 11, 2018
@seishun @MylesBorins
doc: require CI status indicator in PRs
6690659
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
MylesBorins pushed a commit that referenced this pull request Feb 12, 2018
@seishun @MylesBorins
doc: require CI status indicator in PRs
96b952e
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
MylesBorins pushed a commit that referenced this pull request Feb 13, 2018
@seishun @MylesBorins
doc: require CI status indicator in PRs
d85840d
Commits are often landed despite failing on one or more CI platforms.
Having a CI status indicator in the PR should make this less likely to
happen.

PR-URL: #17151
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Jon Moss <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@tniessen tniessen tniessen approved these changes
@joyeecheung joyeecheung joyeecheung approved these changes
+3 more reviewers
@targos targos targos approved these changes
@maclover7 maclover7 maclover7 approved these changes
@gibfahn gibfahn gibfahn approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

doc Issues and PRs related to Node.js documentation.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

14 participants

@seishun @targos @apapirovski @Fishrock123 @richardlau @vsemozhetbyt @maclover7 @joyeecheung @rvagg @gibfahn @phillipj @BridgeAR @tniessen @nodejs-github-bot
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.