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

CI status updates to GitHub stuck at yellow #790

Closed
refack opened this issue Jul 12, 2017 · 13 comments
Closed

CI status updates to GitHub stuck at yellow #790

refack opened this issue Jul 12, 2017 · 13 comments
Assignees

Comments

@refack
Copy link
Contributor

refack commented Jul 12, 2017

nodejs/node#14067
image
https://ci.nodejs.org/job/node-test-commit/11055/

@phillipj
Copy link
Member

phillipj commented Jul 12, 2017

Dumping out some observations while digging into this:

  • Last bot deploy 3rd July
  • All the latest statuses updates from Jenkins sets status: pending, resulting in the yellow status in GitHub PRs
  • Has to go two days back, to 10th July, to find Jenkins updates which set a status else than pending, meaning failure|success.

As the bot hasn't gotten any recent changes within the last two days, I'm suspecting something Jenkins related at the moment.

@phillipj
Copy link
Member

Seems like the post build step configured to report the build result to the bot via curl doesn't exist anymore. The same is done to report the pending status when a build starts, easily spotted when looking at a build configuration, an "Execute shell" block sending a JSON payload via curl with a static status value of pending.

Pretty certain the same thing was done to report failure|success, configured as two post build steps per build. @jbergstroem can confirm that sounds familiar?

@nodejs/jenkins-admins has something particular been done to Jenkins or the nodejs/node related builds the last couple of days?

@joaocgreis
Copy link
Member

@phillipj I can confirm that is correct. The build step to mark as failure|success disappeared. This is most likely because the Jenkins plugins were updated this week (while Jenkins was locked down). It's far from the first time we've had issues after updating Jenkins/plugins.

I took a look at the OSX job (picked randomly - any would have worked). The last modification was in 2016. The script to mark as failure|success in not there, there is only an empty Flexible Publish step. So I saved, without modifying anything, and the log confirms that Jenkins removed those steps on its own.

Thus, something in some plugin changed and what we were doing is no longer supported. We must find a new way or better understand what happened.

@Fishrock123
Copy link
Contributor

ping @nodejs/build

@phillipj
Copy link
Member

Looks like we used the PostBuildScript plugin which was suspended in June and I cannot seem to find any replacement. I have no idea how to execute shell commands post build without that plugin in place.

@joaocgreis
Copy link
Member

I can't explore this now, but someone else might be able to pick this up. If we create a new job with the script to post a success/failure to GH (based on a parameter), we may be able to use Trigger parameterized build on other projects to start it and post the status.

@maclover7
Copy link
Contributor

ping @nodejs/build... is there anyway I can help with getting this working again?

@refack
Copy link
Contributor Author

refack commented Oct 14, 2017

@maclover7 if you have an idea how to add a post-build-command to all the jobs, or if you can investigate the status of PostBuildScript plugin (maybe it's vulnerability does not affect our setup).

@phillipj
Copy link
Member

phillipj commented Oct 14, 2017 via email

@maclover7
Copy link
Contributor

The Post build task plugin might also be an alternative. Maybe we can try out one solution, see what happens, and then go from there? Unfortunately I'm not a member of the Build WG, but maybe a sandbox job could be created to test this out.

@gibfahn
Copy link
Member

gibfahn commented Oct 22, 2017

The Post build task plugin might also be an alternative. Maybe we can try out one solution, see what happens, and then go from there? Unfortunately I'm not a member of the Build WG, but maybe a sandbox job could be created to test this out.

@maclover7 this really needs someone to test it with their own repo and get something that works. Once we have that we can just PR changes to the github-bot repo (and someone can change whatever secret is needed in the Jenkins config).

@seishun seishun mentioned this issue Oct 30, 2017
2 tasks
@maclover7 maclover7 self-assigned this Nov 4, 2017
maclover7 added a commit to maclover7/build that referenced this issue Nov 4, 2017
This creates a new `post-build-status-update` Jenkins Pipeline. It's job
is to propogate build information from Jenkins CI to the GitHub Bot to
GitHub. The pipeline created here will be called from node-test-commit-*
sub build jobs through the [Parameterized Trigger Plugin](https://wiki.jenkins.io/display/JENKINS/Parameterized+Trigger+Plugin).

The way this would be used is by creating pre and post build triggers
through the plugin, which would call this pipeline. My suggestion is
that we woll this out to one or two jobs (maybe the linter?), try it
out, and then after that roll it out to all sub builds.

Hopefully, this PR should finally fix the yellow CI statuses on GitHub!

Refs: nodejs#790
maclover7 added a commit that referenced this issue Nov 4, 2017
This creates a new `post-build-status-update` Jenkins Pipeline. It's job
is to propogate build information from Jenkins CI to the GitHub Bot to
GitHub. The pipeline created here will be called from node-test-commit-*
sub build jobs through the [Parameterized Trigger
Plugin](https://wiki.jenkins.io/display/JENKINS/Parameterized+Trigger+Plugin).

The way this would be used is by creating pre and post build triggers
through the plugin, which would call this pipeline. My suggestion is
that we woll this out to one or two jobs (maybe the linter?), try it
out, and then after that roll it out to all sub builds.

Hopefully, this PR should finally fix the yellow CI statuses on GitHub!

PR-URL: #973
Refs: #790
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
@maclover7
Copy link
Contributor

#973 has been rolled out to all node-test-commit sub jobs, so hopefully this should be resolved!

@nodejs/collaborators green/red CI status lights should be appearing now in PRs... if you encounter any errors please post here on this issue to try and keep the discussion all in one place. Unless any huge errors come up, will close out this issue in a few days ❤️

@maclover7
Copy link
Contributor

This largely seems fixed and to be working, going to close for now :)

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

6 participants