githubPublishRelease¶
Publish a release in GitHub
Prerequisites¶
You need to create a personal access token within GitHub and add this to the Jenkins credentials store.
Please see GitHub documentation for details about creating the personal access token.
Parameters¶
Overview - Step¶
| Name | Mandatory | Additional information |
|---|---|---|
| owner | yes | |
| repository | yes | |
| script | (yes) | |
| token | (yes) | githubTokenCredentialsId) |
| version | yes | |
| addClosedIssues | no | |
| addDeltaToLastRelease | no | |
| apiUrl | no | |
| assetPath | no | |
| assetPathList | no | |
| commitish | no | |
| excludeLabels | no | |
| githubApiTimeout | no | |
| labels | no | |
| preRelease | no | |
| releaseBodyHeader | no | |
| serverUrl | no | |
| tagPrefix | no | |
| uploadUrl | no | |
| verbose | no | activates debug output |
Overview - Execution Environment¶
Orchestrator-specific only
These parameters are relevant for orchestrator usage and not considered when using the command line option.
| Name | Mandatory | Additional information |
|---|---|---|
Details¶
addClosedIssues¶
If set to true, closed issues and merged pull-requests since the last release will added below the releaseBodyHeader
| Scope | Details |
|---|---|
| Aliases | - |
| Type | bool |
| Mandatory | no |
| Default | false |
| Possible values | - true- false |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
addDeltaToLastRelease¶
If set to true, a link will be added to the release information that brings up all commits since the last release.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | bool |
| Mandatory | no |
| Default | false |
| Possible values | - true- false |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
apiUrl¶
Set the GitHub API url.
| Scope | Details |
|---|---|
| Aliases | githubApiUrl |
| Type | string |
| Mandatory | no |
| Default | https://api.github.com |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
assetPath¶
Path to a release asset which should be uploaded to the list of release assets.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | string |
| Mandatory | no |
| Default | $PIPER_assetPath (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
assetPathList¶
List of paths to a release asset which should be uploaded to the list of release assets.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | []string |
| Mandatory | no |
| Default | $PIPER_assetPathList (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
commitish¶
Target git commitish for the release
| Scope | Details |
|---|---|
| Aliases | - |
| Type | string |
| Mandatory | no |
| Default | master |
| Secret | no |
| Configuration scope |
|
| Resource references | commonPipelineEnvironment: reference to: git/headCommitId |
excludeLabels¶
Allows to exclude issues with dedicated list of labels.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | []string |
| Mandatory | no |
| Default | - duplicate- invalid- question- wontfix |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
githubApiTimeout¶
Set HTTP timeout for GitHub API calls (in seconds)
| Scope | Details |
|---|---|
| Aliases | - |
| Type | int |
| Mandatory | no |
| Default | 30 |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
labels¶
Labels to include in issue search.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | []string |
| Mandatory | no |
| Default | $PIPER_labels (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
owner¶
Name of the GitHub organization.
| Scope | Details |
|---|---|
| Aliases | githubOrg |
| Type | string |
| Mandatory | yes |
| Default | $PIPER_owner (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | commonPipelineEnvironment: reference to: github/owner |
preRelease¶
If set to true the release will be marked as Pre-release.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | bool |
| Mandatory | no |
| Default | false |
| Possible values | - true- false |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
releaseBodyHeader¶
Content which will appear for the release.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | string |
| Mandatory | no |
| Default | $PIPER_releaseBodyHeader (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
repository¶
Name of the GitHub repository.
| Scope | Details |
|---|---|
| Aliases | githubRepo |
| Type | string |
| Mandatory | yes |
| Default | $PIPER_repository (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | commonPipelineEnvironment: reference to: github/repository |
script¶
The common script environment of the Jenkinsfile running. Typically the reference to the script calling the pipeline step is provided with the this parameter, as in script: this. This allows the function to access the commonPipelineEnvironment for retrieving, e.g. configuration parameters.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | Jenkins Script |
| Mandatory | yes |
| Default | |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
serverUrl¶
GitHub server url for end-user access.
| Scope | Details |
|---|---|
| Aliases | githubServerUrl |
| Type | string |
| Mandatory | no |
| Default | https://github.com |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
tagPrefix¶
Defines a prefix to be added to the tag.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | string |
| Mandatory | no |
| Default | '' |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
token¶
GitHub personal access token as per https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line
| Scope | Details |
|---|---|
| Aliases | - githubToken- access_token |
| Type | string |
| Mandatory | yes |
| Default | $PIPER_token (if set) |
| Secret | yes |
| Configuration scope |
|
| Resource references | Jenkins credential id: id: githubTokenCredentialsIdVault resource: name: githubVaultSecretNamedefault value: githubVault paths:
|
uploadUrl¶
Set the GitHub API url.
| Scope | Details |
|---|---|
| Aliases | githubUploadUrl |
| Type | string |
| Mandatory | no |
| Default | https://uploads.github.com |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
verbose¶
verbose output
| Scope | Details |
|---|---|
| Aliases | - |
| Type | bool |
| Mandatory | no |
| Default | false |
| Possible values | - true- false |
| Secret | no |
| Configuration scope |
|
| Resource references | none |
version¶
Define the version number which will be written as tag as well as release name.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | string |
| Mandatory | yes |
| Default | $PIPER_version (if set) |
| Secret | no |
| Configuration scope |
|
| Resource references | commonPipelineEnvironment: reference to: artifactVersion |
githubTokenCredentialsId¶
Jenkins 'Secret text' credentials ID containing token to authenticate to GitHub.
| Scope | Details |
|---|---|
| Aliases | - |
| Type | string |
| Configuration scope |
|
Description¶
This step creates a tag in your GitHub repository together with a release. The release can be filled with text plus additional information like:
- Closed pull request since last release
- Closed issues since last release
- Link to delta information showing all commits since last release
The result looks like

Usage¶
We recommend to define values of step parameters via .pipeline/config.yml file.
In this case, calling the step is essentially reduced to defining the step name.
Calling the step can be done either in an orchestrator specific way (e.g. via a Jenkins library step) or on the command line.
library('piper-lib-os')
githubPublishRelease script: this
piper githubPublishRelease
Example¶
Usage of pipeline step:
githubPublishRelease script: this, releaseBodyHeader: "**This is the latest success!**<br />"