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

lastCompletedBuild for [Jenkins] badges and better discoverability #3460

Merged
merged 7 commits into from
May 16, 2019

Conversation

PyvesB
Copy link
Member

@PyvesB PyvesB commented May 16, 2019

This pull request covers three small improvements to our Jenkins badges:

  • switching the API endpoints from lastBuild to lastCompletedBuild. lastBuild may point to a build in progress or cancelled and for which no coverage nor test data is available. Consequently, the user experience with some of the Jenkins badges is currently quite poor, as the badges will break each time a new build is started. lastCompletedBuild will keep on pointing to the last completed build until the current one has finished, therefore guaranteeing continuity of the badges in these cases.
  • adding the jacoco and cobertura keywords to the coverage badge. If someone is looking for badges for these specific plugins, they will be more likely to find them as they don't currently show up when searched with their names.
  • making the tests more reliable.

@PyvesB PyvesB added the service-badge New or updated service badge label May 16, 2019
@shields-ci
Copy link

shields-ci commented May 16, 2019

Messages
📖 ✨ Thanks for your contribution to Shields, @PyvesB!

Generated by 🚫 dangerJS against b8d6ca2

@PyvesB
Copy link
Member Author

PyvesB commented May 16, 2019

Some tests are timing out and increasing the timeouts is not good enough. Several of the daily Jenkins tests were already failing for some time now, I'll see if I can use a more reliable Jenkins instance for the tests later today.

@PyvesB
Copy link
Member Author

PyvesB commented May 16, 2019

Okay, all tests have passed without any timeout overrides! Ready for review.

@@ -9,19 +9,17 @@ const t = (module.exports = require('../tester').createServiceTester())
// https://wiki.jenkins.io/pages/viewpage.action?pageId=58001258

t.create('jacoco: job found')
.get('/jacoco/https/wso2.org/jenkins/view/All%20Builds/job/archetypes.json')
.timeout(10000)
.get('/jacoco/https/builds.apache.org/job/Derby-JaCoCo.json')
Copy link
Member

@calebcartwright calebcartwright May 16, 2019

Choose a reason for hiding this comment

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

I'm hesitant to change this one. We've had recurring issues with the builds.apache.org instance in the past, and it kept timing out for me when I was working on #3337. Obviously the builds.apache.org instance is working at the moment but it's been way too flaky in the past for me to trust it 😄 . It doesn't look like this particular test was failing/timing out, so I think we might be better off keeping this test with the wso2.org instance.

the ubuntu and updates.jenkins-ci.org instances (including the ones below) are definitely problematic and need to be replaced, but I'd suggest we find a target jenkins instance other than builds.apache.org.

What do you think?

Copy link
Member Author

Choose a reason for hiding this comment

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

Fair enough, I've removed all builds.apache.org as well a few of the ubuntu and updates.jenkins-ci.org. The remaining ones seem to be working fine for now. 👍

Copy link
Member

@calebcartwright calebcartwright left a comment

Choose a reason for hiding this comment

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

The changes LGTM 👍 I left an inline comment as I'm personally inclined to avoid the builds.apache.org instance (in addition to the updates.jenkins-ci.org and jenkins.ubuntu.com instances), but not a blocker.

Happy to re-approve if you decide to swap the target instance in the tests

@PyvesB
Copy link
Member Author

PyvesB commented May 16, 2019

Note for future reference: the examples for code coverage are always somewhat tricky to find on public servers, here are two additional jobs which use JaCoCo:
https://ci.eclipse.org/acceleo/job/acceleo-master/
https://ci.eclipse.org/emf-parsley/job/emf-parsley-gerrit/

@PyvesB PyvesB merged commit 570ba18 into badges:master May 16, 2019
@shields-deployment
Copy link

This pull request was merged to master branch. This change is now waiting for deployment, which will usually happen within a few days. Stay tuned by joining our #ops channel on Discord!

After deployment, changes are copied to gh-pages branch:

@calebcartwright
Copy link
Member

the examples for code coverage are always somewhat tricky to find on public servers,

so true! good thought on posting them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
service-badge New or updated service badge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants