This plugin allows the automation of several release tasks regarding
Atlassian JIRA, Confluence, InfluxDB and Twitter.  
It offers the following features:

-   update / create JIRA Tickets
-   update / create JIRA Releases
-   publish release notes and artifacts on GitHub
-   publish release notes on Confluence
-   publish status updates on Twitter
-   publish measurement points in an InfluxDB

# Configuration

### Variables

Build Parameters as well as Environment Variables can be accessed from
every field using the **${variablename}** syntax.  
The plugin will then replace this placeholder with the actual contents
of the parameter or variable named **variablename**.

### Credentials

The plugin adds two new credential types to your Jenkins: one for access
a certain JIRA Project, and another one for accessing Confluence.  
These credentials can be entered using the Jenkins credentials settings,
a screenshot of the JIRA credentials dialog is given below.  
Note that these dialogs do automatically check whether JIRA / Confluence
is accessible using the data you entered.

![](docs/images/jiraCredentials.PNG)

### Adding and Modifying JIRA Tickets

To add or Modify Tickets, add the **JIRA Ticket Editor** Build-Step to
your project.  
There are two ways to select the Tickets to be modified:

1.  Enter a JIRA-Query-Language (JQL) statement selecting your tickets
2.  If the Build was triggered by the GitHub Pull Request Builder
    Plugin, you can give a regular expression to extract the Ticket-Keys
    from the commit messages of the pull request.

Afterwards, you can select the modifications to apply to the tickets
matching these criteria.

![](docs/images/ticketModification.PNG)

In a similar way, new JIRA Tickets can be published:

![](docs/images/ticketAdd.PNG)

### Adding and Modifying JIRA Releases

Select the **Add / Modify JIRA Project Versions** build-step. Using this
buildstep, you can modify or add multiple project versions.  
If the given version name already exists, it is updated, otherwise a new
version for the project is created.

![](docs/images/jiraVersioning.PNG)

### Publishing Release Notes on Confluence

The bundle also offers a build step called **Publish Release Notes on
Confluence** which creates a confluence page.  
This confluence page contains a list of tickets, selected using a JQL
Query provided by the user.  
Below you can see an example configuration, including the page which it
creates.

![](docs/images/confluenceRelNotes.PNG)

![](docs/images/confPage.PNG)

### Publishing Releases on GitHub

This feature is available as the **Publish A Release on GitHub**
post-build action.  
Using this action, you can create a release on GitHub and upload build
artifacts to it.  
The release description works in the same manner as for the confluence
release notes page.

### Twitter Publisher

This build step offers you the possibility to publish a Twitter status
update.  
The build step checks whether a recent tweet with the same text already
exists in order to prevent duplicate tweets.

### InfluxDB Publisher

The **InfluxDB Publisher** build step allows you to add measurement
points to an InfluxDB instance.  
The measurement points are given to the plugin in the format specified
[here](https://docs.influxdata.com/influxdb/v0.9/write_protocols/line/).