When creating a large Jenkins setup, it is often a good idea to consider have a team governing, documenting, and managing the tools a little. These teams almost always require a clear support channel, otherwise everything becomes tribal knowledge, and that is not going to scale well.
Signature of a large Jenkins setup means it has
- Multiple workers with varying operating systems
- Multiple integrations to systems for static analysis, artifact repositories and code-review platform triggers such as pull-requests and patch sets
- Support for an advanced authorization role strategy or single sign on from other platforms
- Support for multiple build-systems such as MSBuild, Maven, Gradle, Ant, Make and so forth
When a large number of teams with a similarly large number of software development stacks starts to use it. Then it becomes relevant with being able to support the systems by providing a clear and obvious support-channel.
A common channel for issue-management is JIRA, which ironically started as an ITSM-platform. And another common place to store documentation is whatever source-control platform you have available, such as GitHub Pages, Wikimedia or Confluence.
So i would like to show how to include custom-integration in the Jenkins header directly into those tools.
- A clean Jenkins
- A clean JIRA with project administrator access
- The Jenkins simple theme plugin, i have configured the material-styling in my own Jenkins below
- This custom Jenkins JIRA Issue Collector Plugin, you’ll have to build it yourself to get an
.hpi-file to upload
Configure JIRA Issue Collector
- In JIRA,
create a target project
- Go to
settingsfor the project
- Go to
+ Add issue collector
- Configure it as you may wish, make sure your select custom trigger-style
- Submit the collector
- Extract the link in the markup JIRA wants you to embed.
The collector-link will look something like this
Configure Jenkins to embed collector and run some
- Go to
- Go to
- Fill in Issue Collector URL: with the collector-link from the previous step.
- Fill in the
- Get the following html
- Put it into the system message
- preview html should now put two buttons in the header
- If you want you can include custom styling to the buttons in the simple theme css box. I used the following to achieve the looks below.
And voila! You have opened a support channel directly from your Jenkins header into your documentation and added support for adding JIRA issues directly into your JIRA project! Clicking the
Report an issue! will open a JIRA Modal and allow your users to fill in a support issue as their own JIRA users.
Issue collectors can be customized to pre-populate fields quite extensively, read more on Atlassians own documentation.