Is there a way to show the Jenkins build status on my project\'s GitHub Readme.md?
I use Jenkins to run continuous integration builds. After each commit it ensures
This plugin should work: https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin
You should be able to embed badges like this into your README.md
file:
Edit:
I'm no longer using this approach, please use one of the other answers.
Update: what I ended up doing, for our specific case: (above answers were great - thanks!)
Because our build server is not on the internet, we have a script to publish the build status to the gh-pages branch in github.
GitHub caches images, so we created .htaccess file, that instructs a short cache timeout for the build-status image.
Put this in the directory with the build-status image:
ExpiresByType image/png "access plus 2 minutes"
Here's the build script. The target that publishes to gh-pages is '--publish.site.dry.run'
With less than 400 lines of config, we have:
. . and this script can be run in or outside of Jenkins, so that:
The Results:
Project main page has the build status, updated after each build, along with latest API Docs, test results and test coverage.
Add below line in your README.md and change both URL according to your jenkins project.
[![Build Status](https://jenkins../..project/lastBuild/buildStatus)](https://jenkins../..project/lastBuild/)
In regards with setting up Jenkins and GitHub's protected branch. I'm using Jenkins 2.6, and these are the steps I did to make it work:
On your repository's GitHub webpage:
On the Jenkins Server: (Make sure you have the Git and GitHub Plugin installed)
Also, make sure the GitHub account that your Jenkins is using is a collaborator for the repository. I've set it with write permission level.
Hope this helps.
In the meanwhile the UI of Jenkins and GitHub has changed a bit and it took me a while to figure out how to configure Jenkins now correctly. The explanation here is based on Jenkins version 2.121.1.
I also assume that you have already configured your Jenkins Job be triggered by a webhook or by polling. Those are the steps that I have taken to get it working:
repo:status
Configure System
and add the OAuth Secret as a GitHub Server - use Secret Text
as an authentication method to put the OAuth Secret in there.Set GitHub commit status
as Post-build action. Set the Status Result to One of the default messages and statuses
.You will now see the status for your commits and branches:
Jently updates your Github commit status (as described by @vonc above), unfortunately they have yet to implement the Repo Status API