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) | reference to Jenkins main pipeline script |
token | (yes) | pass via ENV, Vault or Jenkins credentials (githubTokenCredentialsId ) |
version | yes | |
addClosedIssues | no | |
addDeltaToLastRelease | no | |
apiUrl | no | |
assetPath | no | |
assetPathList | no | |
commitish | no | |
excludeLabels | 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 |
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: githubTokenCredentialsId Vault resource: name: githubVaultSecretName default value: github Vault 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 />"