metadata: name: githubPublishRelease description: Publish a release in GitHub longDescription: | 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 ![Example release](../images/githubRelease.png) spec: inputs: secrets: - name: githubTokenCredentialsId description: Jenkins 'Secret text' credentials ID containing token to authenticate to GitHub. type: jenkins params: - name: addClosedIssues description: "If set to `true`, closed issues and merged pull-requests since the last release will added below the `releaseBodyHeader`" scope: - PARAMETERS - STAGES - STEPS type: bool default: false - name: addDeltaToLastRelease description: "If set to `true`, a link will be added to the release information that brings up all commits since the last release." scope: - PARAMETERS - STAGES - STEPS type: bool default: false - name: apiUrl aliases: - name: githubApiUrl description: Set the GitHub API url. scope: - GENERAL - PARAMETERS - STAGES - STEPS type: string default: https://api.github.com mandatory: true - name: assetPath description: Path to a release asset which should be uploaded to the list of release assets. scope: - PARAMETERS - STAGES - STEPS type: string - name: commitish description: "Target git commitish for the release" scope: - PARAMETERS - STAGES - STEPS type: string default: "master" - name: excludeLabels description: "Allows to exclude issues with dedicated list of labels." scope: - PARAMETERS - STAGES - STEPS type: "[]string" - name: labels description: "Labels to include in issue search." scope: - PARAMETERS - STAGES - STEPS type: "[]string" - name: owner aliases: - name: githubOrg description: Name of the GitHub organization. resourceRef: - name: commonPipelineEnvironment param: github/owner scope: - PARAMETERS - STAGES - STEPS type: string mandatory: true - name: preRelease description: "If set to `true` the release will be marked as Pre-release." scope: - PARAMETERS - STAGES - STEPS type: bool default: false - name: releaseBodyHeader description: Content which will appear for the release. scope: - PARAMETERS - STAGES - STEPS type: string - name: repository aliases: - name: githubRepo description: Name of the GitHub repository. resourceRef: - name: commonPipelineEnvironment param: github/repository scope: - PARAMETERS - STAGES - STEPS type: string mandatory: true - name: serverUrl aliases: - name: githubServerUrl description: "GitHub server url for end-user access." scope: - GENERAL - PARAMETERS - STAGES - STEPS type: string default: https://github.com mandatory: true - name: token aliases: - name: githubToken - name: access_token description: "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: - GENERAL - PARAMETERS - STAGES - STEPS type: string mandatory: true secret: true resourceRef: - name: githubTokenCredentialsId type: secret - type: vaultSecret paths: - $(vaultPath)/github - $(vaultBasePath)/$(vaultPipelineName)/github - $(vaultBasePath)/GROUP-SECRETS/github - name: uploadUrl aliases: - name: githubUploadUrl description: Set the GitHub API url. scope: - GENERAL - PARAMETERS - STAGES - STEPS type: string default: https://uploads.github.com mandatory: true - name: version description: "Define the version number which will be written as tag as well as release name." resourceRef: - name: commonPipelineEnvironment param: artifactVersion scope: - PARAMETERS - STAGES - STEPS type: string mandatory: true