mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-02-09 13:47:31 +02:00
fix Markdown issues (#365)
* fix Markdown issue 'Headers should be surrounded by blank lines' * fix MD012 * fix MD022 * fix MD026 * fix MD007 * fix MD032 * fix MD038 * fix MD040 * fix MD031 * fix MD034 * fix MD004 * fix new findings * fix MD036 * fix MD038 * fix MD032 * fix MD006
This commit is contained in:
parent
a405e7e82c
commit
f757a0e1d4
@ -11,7 +11,7 @@ indent_style = space
|
||||
indent_size = 4
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
[*.{yml,yaml}]
|
||||
[*.{yml,yaml,md}]
|
||||
indent_size = 2
|
||||
[*.png]
|
||||
indent_style = none
|
||||
|
42
.github/CONTRIBUTING.md
vendored
42
.github/CONTRIBUTING.md
vendored
@ -1,6 +1,7 @@
|
||||
# Guidance on how to contribute
|
||||
|
||||
There are two primary ways to help:
|
||||
|
||||
* Using the issue tracker, and
|
||||
* Changing the code-base.
|
||||
|
||||
@ -15,13 +16,16 @@ Use the issue tracker to find ways to contribute. Find a bug or a feature, menti
|
||||
Generally speaking, you should fork this repository, make changes in your own fork, and then submit a pull-request. All new code should have been thoroughly tested end-to-end in order to validate implemented features and the presence or lack of defects.
|
||||
|
||||
### Working with forks
|
||||
|
||||
* [Configure this repository as a remote for your own fork](https://help.github.com/articles/configuring-a-remote-for-a-fork/), and
|
||||
* [Sync your fork with this repository](https://help.github.com/articles/syncing-a-fork/) before beginning to work on a new pull-request.
|
||||
|
||||
### Tests
|
||||
|
||||
All pipeline library coding _must_ come with automated unit tests.
|
||||
|
||||
### Documentation
|
||||
|
||||
The contract of functionality exposed by a library functionality needs to be documented, so it can be properly used.
|
||||
Implementation of a functionality and its documentation shall happen within the same commit(s).
|
||||
|
||||
@ -30,6 +34,7 @@ Implementation of a functionality and its documentation shall happen within the
|
||||
Pipeline steps must not make use of return values. The pattern for sharing parameters between pipeline steps or between a pipeline step and a pipeline script is sharing values via the [`commonPipelineEnvironment`](../vars/commonPipelineEnvironment.groovy). Since there is no return value from a pipeline step the return value of a pipeline step is already `void` rather than `def`.
|
||||
|
||||
### Code Style
|
||||
|
||||
The code should follow any stylistic and architectural guidelines prescribed by the project. In the absence of guidelines, mimic the styles and patterns in the existing code-base.
|
||||
|
||||
Variables, methods, types and so on shall have meaningful self describing names. Doing so makes understanding code easier and requires less commenting. It helps people who did not write the code to understand it better.
|
||||
@ -41,11 +46,13 @@ Code shall contain comments to explain the intention of the code when it is uncl
|
||||
To ensure a common file format, there is a `.editorConfig` file [in place](.editorconfig). To respect this file, [check](http://editorconfig.org/#download) if your editor does support it natively or you need to download a plugin.
|
||||
|
||||
### Commit Message Style
|
||||
|
||||
Write [meaningful commit messages](http://who-t.blogspot.de/2009/12/on-commit-messages.html) and [adhere to standard formatting](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
|
||||
|
||||
Good commit messages speed up the review process and help to keep this project maintainable in the long term.
|
||||
|
||||
## Code Style
|
||||
|
||||
The intention of this section is to describe the code style for this project. As reference document, the [Groovy's style guide](http://groovy-lang.org/style-guide.html) was taken. For further reading about Groovy's syntax and examples, please refer to this guide.
|
||||
|
||||
This project is intended to run in Jenkins [[2]](https://jenkins.io/doc/book/getting-started/) as part of a Jenkins Pipeline [[3]](https://jenkins.io/doc/book/pipeline/). It is composed by Jenkins Pipeline's syntax, Groovy's syntax and Java's syntax.
|
||||
@ -57,18 +64,23 @@ As Groovy supports 99% of Java’s syntax [[1]](http://groovy-lang.org/style-gui
|
||||
### Omit semicolons
|
||||
|
||||
### Use the return keyword
|
||||
|
||||
In Groovy it is optional to use the _return_ keyword. Use explicitly the _return_ keyword for better readability.
|
||||
|
||||
### Use def
|
||||
|
||||
When using _def_ in Groovy, the type is Object. Using _def_ simplifies the code, for example imports are not needed, and therefore the development is faster.
|
||||
|
||||
### Do not use a visibility modifier for public classes and methods
|
||||
|
||||
By default, classes and methods are public, the use of the public modifier is not needed.
|
||||
|
||||
### Do not omit parentheses for Groovy methods
|
||||
|
||||
In Groovy is possible to omit parentheses for top-level expressions, but [Jenkins Pipeline's syntax](https://jenkins.io/doc/book/pipeline/syntax/) use a block, specifically `pipeline { }` as top-level expression [[4]](https://jenkins.io/doc/book/pipeline/syntax/). Do not omit parenthesis for Groovy methods because Jenkins will interpret the method as a Pipeline Step. Conversely, do omit parenthesis for Jenkins Pipeline's Steps.
|
||||
|
||||
### Omit the .class suffix
|
||||
|
||||
In Groovy, the .class suffix is not needed. Omit the .class suffix for simplicity and better readability.
|
||||
|
||||
e.g. `new ExpectedException().expect(AbortException.class)`
|
||||
@ -76,9 +88,11 @@ e.g. `new ExpectedException().expect(AbortException.class)`
|
||||
--> `new ExpectedException().expect(AbortException)`
|
||||
|
||||
### Omit getters and setters
|
||||
|
||||
When declaring a field without modifier inside a Groovy bean, the Groovy compiler generates a private field and a getter and setter.
|
||||
|
||||
### Do not initialize beans with named parameters
|
||||
|
||||
Do not initialize beans with named parameters, because it is not supported by Jenkins:
|
||||
|
||||
e.g. `Version javaVersion = new Version( major: 1, minor: 8)`
|
||||
@ -92,54 +106,72 @@ Use named parameters for Jenkins Pipeline Steps:
|
||||
e.g. `sh returnStdout: true, script: command`
|
||||
|
||||
### Do not use _with()_ operator
|
||||
|
||||
The _with_ operator is not yet supported by Jenkins, and it must not be used or encapsulated in a @NonCPS method.
|
||||
|
||||
### Use _==_ operator
|
||||
|
||||
Use Groovy’s `==` instead of Java `equals()` to avoid NullPointerExceptions. To compare the references of objects, instead of `==`, you should use `a.is(b)` [[1]](http://groovy-lang.org/style-guide.html).
|
||||
|
||||
### Use GStrings
|
||||
|
||||
In Groovy, single quotes create Java Strings, and double quotes can create Java Strings or GStrings, depending if there is or not interpolation of variables [[1]](http://groovy-lang.org/style-guide.html). Using GStrings variable and string concatenation is more simple.
|
||||
|
||||
#### Do not use curly braces {} for variables or variable.property
|
||||
|
||||
For variables, or variable.property, drop the curly braces:
|
||||
|
||||
e.g. `echo "[INFO] ${name} version ${version.version} is installed."`
|
||||
|
||||
--> `echo "[INFO] $name version $version.version is installed."`
|
||||
|
||||
#### Use 'single quotes' for Strings and constants.
|
||||
#### Use "double quotes" for GStrings.
|
||||
#### Use '''triple single quotes''' for multiline Strings.
|
||||
#### Use """triple double quotes""" for multiline GStrings.
|
||||
#### Use /slash/ for regular expresions.
|
||||
#### Use 'single quotes' for Strings and constants
|
||||
|
||||
#### Use "double quotes" for GStrings
|
||||
|
||||
#### Use '''triple single quotes''' for multiline Strings
|
||||
|
||||
#### Use """triple double quotes""" for multiline GStrings
|
||||
|
||||
#### Use /slash/ for regular expresions
|
||||
|
||||
This notation avoids to double escape backslashes, making easier working with regex.
|
||||
|
||||
### Use native syntax for data structures
|
||||
|
||||
Use the native syntax for data structures provided by Groovy like lists, maps, regex, or ranges of values.
|
||||
|
||||
### Use aditional Groovy methods
|
||||
|
||||
Use the additional methods provided by Groovy to manipulate String, Files, Streams, Collections, and other classes.
|
||||
For a complete description of all available methods, please read the GDK API [[5]](http://groovy-lang.org/groovy-dev-kit.html).
|
||||
|
||||
### Use Groovy's switch
|
||||
|
||||
Groovy’s switch accepts any kind of type, thereby is more powerful. In this case, the use of _def_ instead of a type is necessary.
|
||||
|
||||
### Use alias for import
|
||||
|
||||
In Groovy, it is possible to assign an alias to imported packages. Use alias for imported packages to avoid the use of fully-qualified names and increase readability.
|
||||
|
||||
### Use Groovy syntax to check objects
|
||||
|
||||
In Groovy a null, void, equal to zero, or empty object evaluates to false, and if not, evaluates to true. Instead of writing null and size checks e.g. `if (name != null && name.length > 0) {}`, use just the object `if (name) {}`.
|
||||
|
||||
### Use _?._ operator
|
||||
|
||||
Use the safe dereference operator _?._, to simplify the code for accessing objects and object members safely. Using this operator, the Groovy compiler checks null objects and null object members, and returns _null_ if the object or the object member is null and never throws a NullPointerException.
|
||||
|
||||
### Use _?:_ operator
|
||||
|
||||
Use Elvis operator _?:_ to simplify default value validations.
|
||||
|
||||
### Use _any_ keyword
|
||||
|
||||
If the type of the exception thrown inside a try block is not important, catch any exception using the _any_ keyword.
|
||||
|
||||
### Use _assert_
|
||||
|
||||
To check parameters, return values, and more, use the assert statement.
|
||||
|
||||
## Reference
|
||||
|
24
README.md
24
README.md
@ -11,10 +11,10 @@ the most important SAP technologies by means of Jenkins pipelines.
|
||||
|
||||
Project "Piper" consists of two parts:
|
||||
|
||||
* [A shared library][piper-library] containing steps and utilities that are
|
||||
required by Jenkins pipelines.
|
||||
* A set of [Jenkins pipelines][piper-pipelines] using the piper library to
|
||||
implement best practice processes.
|
||||
* [A shared library][piper-library] containing steps and utilities that are
|
||||
required by Jenkins pipelines.
|
||||
* A set of [Jenkins pipelines][piper-pipelines] using the piper library to
|
||||
implement best practice processes.
|
||||
|
||||
Please follow [this link to our extended library documentation][piper-library-pages].
|
||||
|
||||
@ -54,13 +54,13 @@ without prior notice.
|
||||
|
||||
# Requirements
|
||||
|
||||
* Java Runtime Environment 8
|
||||
* Installation of Jenkins v 2.60.3 or higher running on Linux. We tested with
|
||||
debian-stretch.
|
||||
* Jenkins Plugins installed as described in the [Required
|
||||
Plugin][piper-library-pages-plugins] section.
|
||||
* A Jenkins user with administration privileges.
|
||||
* The Jenkins instance has access to [github.com][github].
|
||||
* Java Runtime Environment 8
|
||||
* Installation of Jenkins v 2.60.3 or higher running on Linux. We tested with
|
||||
debian-stretch.
|
||||
* Jenkins Plugins installed as described in the [Required
|
||||
Plugin][piper-library-pages-plugins] section.
|
||||
* A Jenkins user with administration privileges.
|
||||
* The Jenkins instance has access to [github.com][github].
|
||||
|
||||
# Download and Installation
|
||||
|
||||
@ -83,7 +83,7 @@ To setup the shared library, you need to perform the following steps:
|
||||
Now the library is available as `piper-library-os` and can be used in any
|
||||
`Jenkinsfile` by adding this line:
|
||||
|
||||
```
|
||||
```groovy
|
||||
@Library('piper-library-os') _
|
||||
```
|
||||
|
||||
|
@ -42,10 +42,9 @@ Following data (non-personal) is collected for example:
|
||||
|
||||
2. Individual deactivation per step by passing the parameter `collectTelemetryData: false`, like e.g. `setVersion script:this, collectTelemetryData: false`
|
||||
|
||||
|
||||
## Example configuration
|
||||
|
||||
```
|
||||
```yaml
|
||||
general:
|
||||
gitSshKeyCredentialsId: GitHub_Test_SSH
|
||||
|
||||
@ -69,7 +68,8 @@ Configuration is loaded into `commonPipelineEnvironment` during step [setupCommo
|
||||
You can access the configuration values via `commonPipelineEnvironment.configuration` which will return you the complete configuration map.
|
||||
|
||||
Thus following access is for example possible (accessing `gitSshKeyCredentialsId` from `general` section):
|
||||
```
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.configuration.general.gitSshKeyCredentialsId
|
||||
```
|
||||
|
||||
@ -78,6 +78,3 @@ commonPipelineEnvironment.configuration.general.gitSshKeyCredentialsId
|
||||
Within library steps the `ConfigurationHelper` object is used.
|
||||
|
||||
You can see its usage in all the Piper steps, for example [newmanExecute](https://github.com/SAP/jenkins-library/blob/master/vars/newmanExecute.groovy#L23).
|
||||
|
||||
|
||||
|
||||
|
@ -9,5 +9,4 @@ work.
|
||||
For information on the project and installation of the library, please have a
|
||||
look at our [README.md][piper-pipelines-readme].
|
||||
|
||||
|
||||
[piper-pipelines-readme]: https://github.com/SAP/jenkins-library/blob/master/README.md
|
||||
|
@ -54,4 +54,3 @@ The list below contains the plugin Id and version of the plugin.
|
||||
- workflow-scm-step 2.6
|
||||
- workflow-step-api 2.13
|
||||
- workflow-support 2.16
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# artifactSetVersion
|
||||
|
||||
## Description
|
||||
|
||||
The continuous delivery process requires that each build is done with a unique version number.
|
||||
|
||||
The version generated using this step will contain:
|
||||
@ -15,6 +16,7 @@ Since you might not want to configure the git credentials in Jenkins, committing
|
||||
If you require strict reproducibility of your builds, this should be used.
|
||||
|
||||
## Prerequsites
|
||||
|
||||
none
|
||||
|
||||
## Parameters
|
||||
@ -43,9 +45,9 @@ none
|
||||
* `commitVersion` controls if the changed version is committed and pushed to the git repository. If this is enabled (which is the default), you need to provide `gitCredentialsId` and `gitSshUrl`.
|
||||
* `dockerVersionSource` specifies the source to be used for the main version which is used for generating the automatic version.
|
||||
|
||||
* This can either be the version of the base image - as retrieved from the `FROM` statement within the Dockerfile, e.g. `FROM jenkins:2.46.2`
|
||||
* Alternatively the name of an environment variable defined in the Docker image can be used which contains the version number, e.g. `ENV MY_VERSION 1.2.3`
|
||||
* The third option `appVersion` applies only to the artifactType `appContainer`. Here the version of the app which is packaged into the container will be used as version for the container itself.
|
||||
* This can either be the version of the base image - as retrieved from the `FROM` statement within the Dockerfile, e.g. `FROM jenkins:2.46.2`
|
||||
* Alternatively the name of an environment variable defined in the Docker image can be used which contains the version number, e.g. `ENV MY_VERSION 1.2.3`
|
||||
* The third option `appVersion` applies only to the artifactType `appContainer`. Here the version of the app which is packaged into the container will be used as version for the container itself.
|
||||
|
||||
* Using `filePath` you could define a custom path to the descriptor file.
|
||||
* `gitCommitId` defines the version prefix of the automatically generated version. By default it will take the long commitId hash. You could pass any other string (e.g. the short commitId hash) to be used. In case you don't want to have the gitCommitId added to the automatic versioning string you could set the value to an empty string: `''`.
|
||||
@ -56,6 +58,7 @@ none
|
||||
* `timestamp` defines the timestamp to be used in the automatic version string. You could overwrite the default behavior by explicitly setting this string.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `artifactType`
|
||||
@ -77,5 +80,3 @@ The following parameters can also be specified as step parameters using the glob
|
||||
```groovy
|
||||
artifactSetVersion script: this, buildTool: 'maven'
|
||||
```
|
||||
|
||||
|
||||
|
@ -26,7 +26,6 @@ You need to have a Bats test file. By default you would put this into directory
|
||||
| testPath | no | `src/test`| |
|
||||
| testRepository | no | | |
|
||||
|
||||
|
||||
Details:
|
||||
|
||||
* `outputFormat` defines the format of the test result output. `junit` would be the standard for automated build environments but you could use also the option `tap`.
|
||||
@ -38,7 +37,8 @@ Details:
|
||||
With `envVars` it is possible to pass either fixed values but also templates using [`commonPipelineEnvironment`](commonPipelineEnvironment.md).
|
||||
|
||||
Example:
|
||||
```
|
||||
|
||||
```yaml
|
||||
batsExecuteTests script: this, envVars = [
|
||||
FIX_VALUE: 'my fixed value',
|
||||
CONTAINER_NAME: '${commonPipelineEnvironment.configuration.steps.executeBatsTests.dockerContainerName}',
|
||||
@ -53,6 +53,7 @@ Details:
|
||||
* The parameter `repository` defines the version of **bats-core** to be used. By default we use the version from the master branch.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step/stage/general parameters using the [global configuration](../configuration.md):
|
||||
|
||||
* dockerImage
|
||||
@ -68,7 +69,6 @@ The following parameters can also be specified as step/stage/general parameters
|
||||
* testPath
|
||||
* testRepository
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
|
@ -1,6 +1,7 @@
|
||||
# checkChangeInDevelopment
|
||||
|
||||
## Description
|
||||
|
||||
Checks if a Change Document in SAP Solution Manager is in status 'in development'. The change document id is retrieved from the git commit history. The change document id
|
||||
can also be provided via parameter `changeDocumentId`. Any value provided as parameter has a higher precedence than a value from the commit history.
|
||||
|
||||
@ -8,9 +9,11 @@ By default the git commit messages between `origin/master` and `HEAD` are scanne
|
||||
range and the pattern can be configured. For details see 'parameters' table.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **[Change Management Client 2.0.0 or compatible version](http://central.maven.org/maven2/com/sap/devops/cmclient/dist.cli/)** - available for download on Maven Central.
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -------------------|-----------|--------------------------------------------------------|--------------------|
|
||||
| `script` | yes | | |
|
||||
@ -34,15 +37,16 @@ range and the pattern can be configured. For details see 'parameters' table.
|
||||
* `failIfStatusIsNotInDevelopment` - when set to `false` the step will not fail in case the step is not in status 'in development'.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The step is configured using a customer configuration file provided as
|
||||
resource in an custom shared library.
|
||||
|
||||
```
|
||||
```groovy
|
||||
@Library('piper-library-os@master') _
|
||||
|
||||
// the shared lib containing the additional configuration
|
||||
// needs to be configured in Jenkins
|
||||
@Library(foo@master') __
|
||||
@Library('foo@master') __
|
||||
|
||||
// inside the shared lib denoted by 'foo' the additional configuration file
|
||||
// needs to be located under 'resources' ('resoures/myConfig.yml')
|
||||
@ -50,10 +54,10 @@ prepareDefaultValues script: this,
|
||||
customDefaults: 'myConfig.yml'
|
||||
```
|
||||
|
||||
Example content of ```'resources/myConfig.yml'``` in branch ```'master'``` of the repository denoted by
|
||||
```'foo'```:
|
||||
Example content of `'resources/myConfig.yml'` in branch `'master'` of the repository denoted by
|
||||
`'foo'`:
|
||||
|
||||
```
|
||||
```yaml
|
||||
general:
|
||||
changeManagement:
|
||||
changeDocumentLabel: 'ChangeDocument\s?:'
|
||||
@ -70,7 +74,7 @@ The properties configured in section `'general/changeManagement'` are shared bet
|
||||
|
||||
The properties can also be configured on a per-step basis:
|
||||
|
||||
```
|
||||
```yaml
|
||||
[...]
|
||||
steps:
|
||||
checkChangeInDevelopment:
|
||||
@ -83,16 +87,20 @@ The properties can also be configured on a per-step basis:
|
||||
The parameters can also be provided when the step is invoked. For examples see below.
|
||||
|
||||
## Return value
|
||||
|
||||
`true` in case the change document is in status 'in development'. Otherwise an hudson.AbortException is thrown. In case `failIfStatusIsNotInDevelopment`
|
||||
is set to `false`, `false` is returned in case the change document is not in status 'in development'
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `AbortException`:
|
||||
* If the change id is not provided via parameter and if the change document id cannot be retrieved from the commit history.
|
||||
* If the change is not in status `in development`. In this case no exception will be thrown when `failIfStatusIsNotInDevelopment` is set to `false`.
|
||||
* If the change id is not provided via parameter and if the change document id cannot be retrieved from the commit history.
|
||||
* If the change is not in status `in development`. In this case no exception will be thrown when `failIfStatusIsNotInDevelopment` is set to `false`.
|
||||
* `IllegalArgumentException`:
|
||||
* If a mandatory property is not provided.
|
||||
* If a mandatory property is not provided.
|
||||
|
||||
## Examples
|
||||
|
||||
```groovy
|
||||
// simple case. All mandatory parameters provided via
|
||||
// configuration, changeDocumentId provided via commit
|
||||
@ -112,4 +120,3 @@ is set to `false`, `false` is returned in case the change document is not in sta
|
||||
]
|
||||
]
|
||||
```
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
# checksPublishResults
|
||||
|
||||
## Description
|
||||
|
||||
This step can publish static check results from various sources.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **static check result files** - To use this step, there must be static check result files available.
|
||||
* installed plugins:
|
||||
* [pmd](https://plugins.jenkins.io/pmd)
|
||||
@ -14,6 +16,7 @@ This step can publish static check results from various sources.
|
||||
* [core](https://plugins.jenkins.io/core)
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ---------------|-----------|-----------------------------------|--------------------|
|
||||
| script | yes | | |
|
||||
@ -38,13 +41,13 @@ This step can publish static check results from various sources.
|
||||
|
||||
Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checkstyle`, `eslint` and `pylint` can be set to `true` or `false` but also to a map of parameters to hand in different settings for the tools.
|
||||
|
||||
**aggregation**
|
||||
### aggregation
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**tasks**
|
||||
### tasks
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -55,7 +58,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| low | no | | |
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**pmd**
|
||||
### pmd
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -63,7 +66,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| archive | no | `true` | `true`, `false` |
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**cpd**
|
||||
### cpd
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -71,7 +74,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| archive | no | `true` | `true`, `false` |
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**findbugs**
|
||||
### findbugs
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -79,7 +82,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| archive | no | `true` | true, false |
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**checkstyle**
|
||||
### checkstyle
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -87,7 +90,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| archive | no | `true` | `true`, `false` |
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**eslint**
|
||||
### eslint
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -95,7 +98,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| archive | no | `true` | `true`, `false` |
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
**pylint**
|
||||
### pylint
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -104,6 +107,7 @@ Each of the parameters `aggregation`, `tasks`, `pmd`, `cpd`, `findbugs`, `checks
|
||||
| thresholds | no | none | see [thresholds](#thresholds) |
|
||||
|
||||
## Step configuration
|
||||
|
||||
Following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `aggregation`
|
||||
@ -141,15 +145,19 @@ checksPublishResults(
|
||||
![StaticChecks Thresholds](../images/StaticChecks_Threshold.png)
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
If both ESLint and PyLint results are published, they are not correctly aggregated in the aggregator plugin.
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
// publish java results from pmd, cpd, checkstyle & findbugs
|
||||
checksPublishResults archive: true, pmd: true, cpd: true, findbugs: true, checkstyle: true, aggregation: [thresholds: [fail: [high: 0]]]
|
||||
|
@ -21,7 +21,6 @@ Deployment can be done
|
||||
|
||||
![Jenkins credentials configuration](../images/cf_credentials.png)
|
||||
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
@ -41,13 +40,12 @@ Deployment can be done
|
||||
|
||||
* `script` defines the global script environment of the Jenkinsfile run. Typically `this` is passed to this parameter. This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md) for retrieving e.g. configuration parameters.
|
||||
* `cloudFoundry` defines a map containing following properties:
|
||||
|
||||
- `apiEndpoint`: Cloud Foundry API endpoint (default: `https://api.cf.eu10.hana.ondemand.com`)
|
||||
- `appName`: App name of application to be deployed (optional)
|
||||
- `credentialsId`: Credentials to be used for deployment (mandatory)
|
||||
- `manifest`: Manifest to be used for deployment
|
||||
- `org`: Cloud Foundry target organization (mandatory)
|
||||
- `space`: Cloud Foundry target space (mandatory)
|
||||
* `apiEndpoint`: Cloud Foundry API endpoint (default: `https://api.cf.eu10.hana.ondemand.com`)
|
||||
* `appName`: App name of application to be deployed (optional)
|
||||
* `credentialsId`: Credentials to be used for deployment (mandatory)
|
||||
* `manifest`: Manifest to be used for deployment
|
||||
* `org`: Cloud Foundry target organization (mandatory)
|
||||
* `space`: Cloud Foundry target space (mandatory)
|
||||
|
||||
Example: `cloudFoundry: [apiEndpoint: 'https://test.server.com', appName:'cfAppName', credentialsId: 'cfCredentialsId', manifest: 'cfManifest', org: 'cfOrg', space: 'cfSpace']`
|
||||
|
||||
@ -71,10 +69,10 @@ Deployment can be done
|
||||
* `smokeTestScript` allows to specify a script which performs a check during blue-green deployment. The script gets the FQDN as parameter and returns `exit code 0` in case check returned `smokeTestStatusCode`. More details can be found [here](https://github.com/bluemixgaragelondon/cf-blue-green-deploy#how-to-use) <br /> Currently this option is only considered for deployTool `cf_native`.
|
||||
* `stashContent` defines the stash names which should be unstashed at the beginning of the step. This makes the files available in case the step is started on an empty node.
|
||||
|
||||
#### Option cf_native:
|
||||
### Deployment with cf_native
|
||||
|
||||
* `appName` in `cloudFoundry` map (or `cfAppName`) defines the name of the application which will be deployed to the Cloud Foundry space.
|
||||
* `manifest in `cloudFoundry` map` (or `cfManifest`) defines the manifest to be used for Cloud Foundry deployment.
|
||||
* `manifest` in `cloudFoundry` maps (or `cfManifest`) defines the manifest to be used for Cloud Foundry deployment.
|
||||
|
||||
!!! note
|
||||
Cloud Foundry supports the deployment of multiple applications using a single manifest file.
|
||||
@ -83,15 +81,14 @@ Deployment can be done
|
||||
In this case define `appName: ''` since the app name for the individual applications have to be defined via the manifest.
|
||||
You can find details in the [Cloud Foundry Documentation](https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#multi-apps)
|
||||
|
||||
|
||||
#### MTA Deployment:
|
||||
### Deployment with mtaDeployPlugin
|
||||
|
||||
* `mtaPath` define path to *.mtar for deployment.
|
||||
* `mtaExtensionDescriptor` defines additional extension descriptor file for deployment.
|
||||
* `mtaDeployParameters` defines additional parameters passed to mta deployment.
|
||||
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step/stage/general parameters using the [global configuration](../configuration.md):
|
||||
|
||||
* cloudFoundry
|
||||
@ -117,4 +114,3 @@ cloudFoundryDeploy(
|
||||
deployTool: 'cf_native'
|
||||
)
|
||||
```
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
# commonPipelineEnvironment
|
||||
|
||||
## Description
|
||||
|
||||
Provides project specific settings.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
none
|
||||
|
||||
## Method details
|
||||
@ -11,21 +13,27 @@ none
|
||||
### getArtifactVersion()
|
||||
|
||||
#### Description
|
||||
|
||||
Returns the version of the artifact which is build in the pipeline.
|
||||
|
||||
#### Parameters
|
||||
|
||||
none
|
||||
|
||||
#### Return value
|
||||
|
||||
A `String` containing the version.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
def myVersion = commonPipelineEnvironment.getArtifactVersion()
|
||||
```
|
||||
@ -33,21 +41,27 @@ def myVersion = commonPipelineEnvironment.getArtifactVersion()
|
||||
### setArtifactVersion(version)
|
||||
|
||||
#### Description
|
||||
|
||||
Sets the version of the artifact which is build in the pipeline.
|
||||
|
||||
#### Parameters
|
||||
|
||||
none
|
||||
|
||||
#### Return value
|
||||
|
||||
none
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.setArtifactVersion('1.2.3')
|
||||
```
|
||||
@ -55,92 +69,113 @@ commonPipelineEnvironment.setArtifactVersion('1.2.3')
|
||||
### getConfigProperties()
|
||||
|
||||
#### Description
|
||||
|
||||
Returns the map of project specific configuration properties. No defensive copy is created.
|
||||
Write operations to the map are visible further down in the pipeline.
|
||||
|
||||
#### Parameters
|
||||
|
||||
none
|
||||
|
||||
#### Return value
|
||||
|
||||
A map containing project specific configuration properties.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.getConfigProperties()
|
||||
```
|
||||
|
||||
|
||||
### setConfigProperties(configuration)
|
||||
|
||||
#### Description
|
||||
|
||||
Sets the map of configuration properties. Any existing map is overwritten.
|
||||
|
||||
#### Parameters
|
||||
|
||||
* `configuration` - A map containing the new configuration
|
||||
|
||||
#### Return value
|
||||
|
||||
none
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.setConfigProperties([DEPLOY_HOST: 'deploy-host.com', DEPLOY_ACCOUNT: 'deploy-account'])
|
||||
```
|
||||
|
||||
|
||||
### getConfigProperty(property)
|
||||
|
||||
#### Description
|
||||
|
||||
Gets a specific value from the configuration property.
|
||||
|
||||
#### Parameters
|
||||
|
||||
* `property` - The key of the property.
|
||||
|
||||
#### Return value
|
||||
|
||||
* The value associated with key `property`. `null` is returned in case the property does not exist.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.getConfigProperty('DEPLOY_HOST')
|
||||
```
|
||||
|
||||
|
||||
### setConfigProperty(property, value)
|
||||
|
||||
#### Description
|
||||
|
||||
Sets property `property` with value `value`. Any existing property with key `property` is overwritten.
|
||||
|
||||
#### Parameters
|
||||
|
||||
* `property` - The key of the property.
|
||||
* `value` - The value of the property.
|
||||
|
||||
#### Return value
|
||||
|
||||
none
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.setConfigProperty('DEPLOY_HOST', 'my-deploy-host.com')
|
||||
```
|
||||
@ -148,21 +183,27 @@ commonPipelineEnvironment.setConfigProperty('DEPLOY_HOST', 'my-deploy-host.com')
|
||||
### getInfluxCustomData()
|
||||
|
||||
#### Description
|
||||
|
||||
Returns the Influx custom data which can be collected during pipeline run.
|
||||
|
||||
#### Parameters
|
||||
|
||||
none
|
||||
|
||||
#### Return value
|
||||
|
||||
A `Map` containing the data collected.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
def myInfluxData = commonPipelineEnvironment.getInfluxCustomData()
|
||||
```
|
||||
@ -170,25 +211,30 @@ def myInfluxData = commonPipelineEnvironment.getInfluxCustomData()
|
||||
### getInfluxCustomDataMap()
|
||||
|
||||
#### Description
|
||||
|
||||
Returns the Influx custom data map which can be collected during pipeline run.
|
||||
It is used for example by step [`influxWriteData`](../steps/influxWriteData.md).
|
||||
The data map is a map of maps, like `[pipeline_data: [:], my_measurement: [:]]`
|
||||
Each map inside the map represents a dedicated measurement in the InfluxDB.
|
||||
|
||||
|
||||
#### Parameters
|
||||
|
||||
none
|
||||
|
||||
#### Return value
|
||||
|
||||
A `Map` containing a `Map`s with data collected.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
def myInfluxDataMap = commonPipelineEnvironment.getInfluxCustomDataMap()
|
||||
```
|
||||
@ -196,21 +242,27 @@ def myInfluxDataMap = commonPipelineEnvironment.getInfluxCustomDataMap()
|
||||
### getMtarFileName()
|
||||
|
||||
#### Description
|
||||
|
||||
Returns the path of the mtar archive file.
|
||||
|
||||
#### Parameters
|
||||
|
||||
none
|
||||
|
||||
#### Return value
|
||||
|
||||
The path of the mtar archive file.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.getMtarFileName()
|
||||
```
|
||||
@ -218,18 +270,23 @@ commonPipelineEnvironment.getMtarFileName()
|
||||
### setMtarFileName(name)
|
||||
|
||||
#### Description
|
||||
|
||||
Sets the path of the mtar archive file. Any old value is discarded.
|
||||
|
||||
#### Parameters
|
||||
|
||||
* `mtarFilePath` - The path of the mtar archive file name.
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.setMtarFileName('path/to/foo.mtar')
|
||||
```
|
||||
@ -237,22 +294,28 @@ commonPipelineEnvironment.setMtarFileName('path/to/foo.mtar')
|
||||
### getPipelineMeasurement(measurementName)
|
||||
|
||||
#### Description
|
||||
|
||||
Returns the value of a specific pipeline measurement.
|
||||
The measurements are collected with step [`durationMeasure`](../steps/durationMeasure.md)
|
||||
|
||||
#### Parameters
|
||||
|
||||
Name of the measurement
|
||||
|
||||
#### Return value
|
||||
|
||||
Value of the measurement
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
def myMeasurementValue = commonPipelineEnvironment.getPipelineMeasurement('build_stage_duration')
|
||||
```
|
||||
@ -260,23 +323,29 @@ def myMeasurementValue = commonPipelineEnvironment.getPipelineMeasurement('build
|
||||
### setPipelineMeasurement(measurementName, value)
|
||||
|
||||
#### Description
|
||||
|
||||
**This is an internal function!**
|
||||
Sets the value of a specific pipeline measurement.
|
||||
Please use the step [`durationMeasure`](../steps/durationMeasure.md) in a pipeline, instead.
|
||||
|
||||
#### Parameters
|
||||
|
||||
Name of the measurement and its value.
|
||||
|
||||
#### Return value
|
||||
|
||||
none
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
none
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
commonPipelineEnvironment.setPipelineMeasurement('build_stage_duration', 2345)
|
||||
```
|
||||
|
@ -41,8 +41,8 @@ Proxy environment variables defined on the Jenkins machine are also available in
|
||||
* `sidecarVolumeBind`: as `dockerVolumeBind` for the sidecar container
|
||||
* `sidecarWorkspace`: as `dockerWorkspace` for the sidecar container
|
||||
|
||||
|
||||
## Kubernetes support
|
||||
|
||||
If the Jenkins is setup on a Kubernetes cluster, then you can execute the closure inside a container of a pod by setting an environment variable `ON_K8S` to `true`. However, it will ignore `containerPortMappings`, `dockerOptions` and `dockerVolumeBind` values.
|
||||
|
||||
## Step configuration
|
||||
@ -69,14 +69,16 @@ In following sections the configuration is possible:
|
||||
|sidecarVolumeBind||X|X|
|
||||
|sidecarWorkspace||X|X|
|
||||
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
||||
## Example 1: Run closure inside a docker container
|
||||
@ -86,6 +88,7 @@ dockerExecute(dockerImage: 'maven:3.5-jdk-7'){
|
||||
sh "mvn clean install"
|
||||
}
|
||||
```
|
||||
|
||||
## Example 2: Run closure inside a container in a kubernetes pod
|
||||
|
||||
```sh
|
||||
@ -101,7 +104,7 @@ dockerExecute(script: this, dockerImage: 'maven:3.5-jdk-7'){
|
||||
|
||||
In the above example, the `dockerEcecute` step will internally invoke [dockerExecuteOnKubernetes](dockerExecuteOnKubernetes.md) step and execute the closure inside a pod.
|
||||
|
||||
## Example 3: Run closure inside a container which is attached to a sidecar container (as for example used in [seleniumExecuteTests](seleniumExecuteTests.md):
|
||||
## Example 3: Run closure inside a container which is attached to a sidecar container (as for example used in [seleniumExecuteTests](seleniumExecuteTests.md)
|
||||
|
||||
```groovy
|
||||
dockerExecute(
|
||||
@ -119,7 +122,3 @@ dockerExecute(
|
||||
'''
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
Executes a closure inside a container in a kubernetes pod. Proxy environment variables defined on the Jenkins machine are also available in the container.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* The Jenkins should be running on kubernetes.
|
||||
* An environment variable `ON_K8S` should be created on Jenkins and initialized to `true`. This could for example be done via _Jenkins_ - _Manage Jenkins_ - _Configure System_ - _Global properties_ - _Environment variables_
|
||||
|
||||
@ -64,15 +65,19 @@ In following sections the configuration is possible:
|
||||
|stashIncludes||X|X|
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
||||
## Example 1: Run a closure in a single container pod
|
||||
|
||||
```sh
|
||||
# set environment variable
|
||||
export ON_K8S=true"
|
||||
@ -87,6 +92,7 @@ dockerExecuteOnKubernetes(script: script, dockerImage: 'maven:3.5-jdk-7'){
|
||||
In the above example, a pod will be created with a docker container of image `maven:3.5-jdk-7`. The closure will be then executed inside the container.
|
||||
|
||||
## Example 2: Run a closure in a multi-container pod
|
||||
|
||||
```sh
|
||||
# set environment variable
|
||||
export ON_K8S=true"
|
||||
|
@ -1,6 +1,7 @@
|
||||
# durationMeasure
|
||||
|
||||
## Description
|
||||
|
||||
This step is used to measure the duration of a set of steps, e.g. a certain stage.
|
||||
The duration is stored in a Map. The measurement data can then be written to an Influx database using step [influxWriteData](influxWriteData.md).
|
||||
|
||||
@ -9,9 +10,11 @@ The duration is stored in a Map. The measurement data can then be written to an
|
||||
This then helps to counter identified issues with respective optimization measures, e.g parallelization of tests.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
none
|
||||
|
||||
## Pipeline configuration
|
||||
|
||||
none
|
||||
|
||||
## Parameters
|
||||
@ -27,6 +30,7 @@ Details:
|
||||
* `measurementName` defines the name of the measurement which is written to the Influx database.
|
||||
|
||||
## Step configuration
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
@ -1,8 +1,10 @@
|
||||
# gaugeExecuteTests
|
||||
|
||||
## Description
|
||||
|
||||
In this step Gauge ([getgauge.io](http:getgauge.io)) acceptance tests are executed.
|
||||
Using Gauge it will be possible to have a three-tier test layout:
|
||||
|
||||
* Acceptance Criteria
|
||||
* Test implemenation layer
|
||||
* Application driver layer
|
||||
@ -11,7 +13,7 @@ This layout is propagated by Jez Humble and Dave Farley in their book "Continuou
|
||||
|
||||
Using Gauge it is possible to write test specifications in [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) and therefore allow e.g. product owners to write the relevant acceptance test specifications. At the same time it allows the developer to implement the steps described in the specification in her development environment.
|
||||
|
||||
You can use the sample projects of Gauge, for example: https://github.com/getgauge/gauge-mvn-archetypes
|
||||
You can use the [sample projects](https://github.com/getgauge/gauge-mvn-archetypes) of Gauge.
|
||||
|
||||
!!! note "Make sure to run against a Selenium Hub configuration"
|
||||
In the test example of _gauge-archetype-selenium_ please make sure to allow it to run against a Selenium hub:
|
||||
@ -35,11 +37,11 @@ none
|
||||
## Example
|
||||
|
||||
Pipeline step:
|
||||
|
||||
```groovy
|
||||
gaugeExecuteTests script: this, testServerUrl: 'http://test.url'
|
||||
```
|
||||
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
@ -49,7 +51,7 @@ gaugeExecuteTests script: this, testServerUrl: 'http://test.url'
|
||||
|dockerEnvVars|no|`[HUB:TRUE, HUB_URL:http://localhost:4444/wd/hub]`||
|
||||
|dockerImage|no|buildTool=`maven`: `maven:3.5-jdk-8`<br />buildTool=`npm`: `node:8-stretch`<br />||
|
||||
|dockerName|no|buildTool=`maven`: `maven`<br />buildTool=`npm`: `npm`<br />||
|
||||
|dockerWorkspace|no|buildTool=`maven`: ``<br />buildTool=`npm`: `/home/node`<br />||
|
||||
|dockerWorkspace|no|buildTool=`maven`: <br />buildTool=`npm`: `/home/node`<br />||
|
||||
|failOnError|no|`false`||
|
||||
|gitBranch|no|||
|
||||
|gitSshKeyCredentialsId|no|``||
|
||||
@ -61,7 +63,6 @@ gaugeExecuteTests script: this, testServerUrl: 'http://test.url'
|
||||
|testRepository|no|||
|
||||
|testServerUrl|no|||
|
||||
|
||||
|
||||
Details:
|
||||
|
||||
* `script` defines the global script environment of the Jenkinsfile run. Typically `this` is passed to this parameter. This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md) for storing the measured duration.
|
||||
|
@ -1,6 +1,7 @@
|
||||
# githubPublishRelease
|
||||
|
||||
## 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:
|
||||
@ -14,6 +15,7 @@ The result looks like
|
||||
![Example release](../images/githubRelease.png)
|
||||
|
||||
## 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](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/).
|
||||
|
@ -1,12 +1,15 @@
|
||||
# handlePipelineStepErrors
|
||||
|
||||
## Description
|
||||
|
||||
Used by other steps to make error analysis easier. Lists parameters and other data available to the step in which the error occurs.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
none
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -----------------|-----------|---------|-----------------|
|
||||
| `stepParameters` | yes | | |
|
||||
@ -18,8 +21,9 @@ none
|
||||
* `echoDetails` - If set to true the following will be output to the console:
|
||||
1. Step beginning: `--- BEGIN LIBRARY STEP: ${stepName}.groovy ---`
|
||||
2. Step end: `--- END LIBRARY STEP: ${stepName}.groovy ---`
|
||||
3. Step errors:
|
||||
```
|
||||
3. Step errors:
|
||||
|
||||
```log
|
||||
----------------------------------------------------------
|
||||
--- ERROR OCCURED IN LIBRARY STEP: ${stepName}
|
||||
----------------------------------------------------------
|
||||
@ -39,18 +43,23 @@ none
|
||||
```
|
||||
|
||||
## Step configuration
|
||||
|
||||
none
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
handlePipelineStepErrors (stepName: 'executeHealthCheck', stepParameters: parameters) {
|
||||
def url = new Utils().getMandatoryParameter(parameters, 'url', null)
|
||||
|
@ -1,6 +1,7 @@
|
||||
# healthExecuteCheck
|
||||
|
||||
## Description
|
||||
|
||||
Calls the health endpoint url of the application.
|
||||
|
||||
The intention of the check is to verify that a suitable health endpoint is available. Such a health endpoint is required for operation purposes.
|
||||
@ -14,8 +15,6 @@ This check is used as a real-life test for your productive health endpoints.
|
||||
|
||||
This is in line with health check capabilities of platforms which are used for example in load balancing scenarios. Here you can find an [example for Amazon AWS](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html).
|
||||
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Endpoint for health check is configured.
|
||||
@ -26,7 +25,6 @@ Endpoint for health check is configured.
|
||||
!!! tip
|
||||
If using Spring Boot framework, ideally the provided `/health` endpoint is used and extended by development. Further information can be found in the [Spring Boot documenation for Endpoints](http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html)
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
Pipeline step:
|
||||
@ -43,8 +41,8 @@ healthExecuteCheck testServerUrl: 'https://testserver.com'
|
||||
|healthEndpoint|no|``||
|
||||
|testServerUrl|no|||
|
||||
|
||||
|
||||
Details:
|
||||
|
||||
* `script` defines the global script environment of the Jenkinsfile run. Typically `this` is passed to this parameter. This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md) for storing the measured duration.
|
||||
* Health check function is called providing full qualified `testServerUrl` (and optionally with `healthEndpoint` if endpoint is not the standard url) to the health check.
|
||||
* In case response of the call is different than `HTTP 200 OK` the **health check fails and the pipeline stops**.
|
||||
|
@ -1,6 +1,7 @@
|
||||
# influxWriteData
|
||||
|
||||
## Description
|
||||
|
||||
Since your Continuous Delivery Pipeline in Jenkins provides your productive development and delivery infrastructure you should monitor the pipeline to ensure it runs as expected. How to setup this monitoring is described in the following.
|
||||
|
||||
You basically need three components:
|
||||
@ -33,7 +34,6 @@ For more advanced setup please reach out to the respective documentation:
|
||||
- https://hub.docker.com/_/influxdb/ (and https://github.com/docker-library/docs/tree/master/influxdb)
|
||||
- https://hub.docker.com/r/grafana/grafana/ (and https://github.com/grafana/grafana-docker)
|
||||
|
||||
|
||||
After you have started your InfluxDB docker you need to create a database:
|
||||
|
||||
- in a Webbrowser open the InfluxDB Web-UI using the following URL: <host of your docker>:8083 (port 8083 is used for access via Web-UI, for Jenkins you use port 8086 to access the DB)
|
||||
@ -42,16 +42,15 @@ After you have started your InfluxDB docker you need to create a database:
|
||||
|
||||
!!! hint "With InfluxDB version 1.1 the InfluxDB Web-UI is deprecated"
|
||||
|
||||
|
||||
You can perform the above steps via commandline:
|
||||
|
||||
- The following command will create a database with name <databasename>
|
||||
- The following command will create a database with name <databasename>
|
||||
|
||||
`curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE \<databasename\>"`
|
||||
`curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE \<databasename\>"`
|
||||
|
||||
- The admin user with the name <adminusername> and the password <adminuserpwd> can be created with
|
||||
- The admin user with the name <adminusername> and the password <adminuserpwd> can be created with
|
||||
|
||||
`curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE USER \<adminusername\> WITH PASSWORD '\<adminuserpwd\>' WITH ALL PRIVILEGES"`
|
||||
`curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE USER \<adminusername\> WITH PASSWORD '\<adminuserpwd\>' WITH ALL PRIVILEGES"`
|
||||
|
||||
Once you have started both docker containers and Influx and Grafana are running you need to configure the Jenkins Plugin according to your settings.
|
||||
|
||||
@ -66,8 +65,8 @@ To setup your Jenkins you need to do two configuration steps:
|
||||
|
||||
Once the plugin is available in your Jenkins:
|
||||
|
||||
* go to "Manage Jenkins" > "Configure System" > scroll down to section "influxdb target"
|
||||
* maintain Influx data
|
||||
- go to "Manage Jenkins" > "Configure System" > scroll down to section "influxdb target"
|
||||
- maintain Influx data
|
||||
|
||||
!!! note "Jenkins as a Service"
|
||||
For Jenkins as a Service instances this is already preset to the local InfluxDB with the name `jenkins`. In this case there is not need to do any additional configuration.
|
||||
@ -90,10 +89,11 @@ influxDBServer=jenkins
|
||||
| influxPrefix | no | `null` | |
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `influxServer`
|
||||
* `influxPrefix`
|
||||
- `influxServer`
|
||||
- `influxPrefix`
|
||||
|
||||
## Example
|
||||
|
||||
@ -107,28 +107,28 @@ You can access your **Grafana** via Web-UI: <host of your grafana(-docker)>
|
||||
(or another port in case you have defined another one when starting your docker)
|
||||
|
||||
As a first step you need to add your InfluxDB as Data source to your Grafana:
|
||||
|
||||
- Login as user admin (PW as defined when starting your docker)
|
||||
- in the navigation go to data sources -> add data source:
|
||||
- name
|
||||
- type: InfluxDB
|
||||
- Url: \http://<host of your InfluxDB server>:<port>
|
||||
- Url: `http://<host of your InfluxDB server>:<port>`
|
||||
- Access: direct (not via proxy)
|
||||
- database: <name of the DB as specified above>
|
||||
- User: <name of the admin user as specified in step above>
|
||||
- Password: <password of the admin user as specified in step above>
|
||||
- database: `<name of the DB as specified above>`
|
||||
- User: `<name of the admin user as specified in step above>`
|
||||
- Password: `<password of the admin user as specified in step above>`
|
||||
|
||||
!!! note "Jenkins as a Service"
|
||||
For Jenkins as a Service the data source configuration is already available.
|
||||
|
||||
Therefore no need to go through the data source configuration step unless you want to add addtional data sources.
|
||||
|
||||
|
||||
## Data collected in InfluxDB
|
||||
|
||||
The Influx plugin collects following data in the Piper context:
|
||||
|
||||
* All data as per default [InfluxDB plugin capabilities](https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin)
|
||||
* Additional data collected via `commonPipelineEnvironment.setInfluxCustomDataProperty()` and via `commonPipelineEnvironment.setPipelineMeasurement()`
|
||||
- All data as per default [InfluxDB plugin capabilities](https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin)
|
||||
- Additional data collected via `commonPipelineEnvironment.setInfluxCustomDataProperty()` and via `commonPipelineEnvironment.setPipelineMeasurement()`
|
||||
|
||||
!!! note "Add custom information to your InfluxDB"
|
||||
You can simply add custom data collected during your pipeline runs via available data objects.
|
||||
@ -140,6 +140,7 @@ The Influx plugin collects following data in the Piper context:
|
||||
```
|
||||
|
||||
### Collected InfluxDB measurements
|
||||
|
||||
Measurements are potentially pre-fixed - see parameter `influxPrefix` above.
|
||||
|
||||
| Measurement name | data column | description |
|
||||
@ -154,7 +155,6 @@ Measurements are potentially pre-fixed - see parameter `influxPrefix` above.
|
||||
| pipeline_data | Examples from the Piper templates:<br /><ul><li>build_duration</li><li>opa_duration</li><li>deploy_test_duration</li><li>deploy_test_duration</li><li>fortify_duration</li><li>release_duration</li><li>...</li></ul>| filled by step [`measureDuration`](durationMeasure.md) using parameter `measurementName`|
|
||||
| step_data | Considered, e.g.:<br /><ul><li>build_quality (Milestone/Release)</li><li>build_url</li><li>bats</li><li>checkmarx</li><li>fortify</li><li>gauge</li><li>nsp</li><li>opa</li><li>opensourcedependency</li><li>ppms</li><li>jmeter</li><li>supa</li><li>snyk</li><li>sonar</li><li>sourceclear</li><li>uiveri5</li><li>vulas</li><li>whitesource</li><li>traceability</li><li>...</li><li>xmakestage</li><li>xmakepromote</li></ul>| filled by `commonPipelineEnvironment.setInfluxStepData()` |
|
||||
|
||||
|
||||
### Examples for InfluxDB queries which can be used in Grafana
|
||||
|
||||
!!! caution "Project Names containing dashes (-)"
|
||||
@ -162,29 +162,27 @@ Measurements are potentially pre-fixed - see parameter `influxPrefix` above.
|
||||
|
||||
Please keep this in mind when specifying your project_name for a InfluxDB query.
|
||||
|
||||
|
||||
#### Example 1: Select last 10 successful builds
|
||||
|
||||
```
|
||||
```sql
|
||||
select top(build_number,10), build_result from jenkins_data WHERE build_result = 'SUCCESS'
|
||||
```
|
||||
|
||||
#### Example 2: Select last 10 step names of failed builds
|
||||
|
||||
|
||||
```
|
||||
```sql
|
||||
select top(build_number,10), build_result, build_step from jenkins_custom_data WHERE build_result = 'FAILURE'
|
||||
```
|
||||
|
||||
#### Example 3: Select build duration of step for a specific project
|
||||
|
||||
```
|
||||
```sql
|
||||
select build_duration / 1000 from "pipeline_data" WHERE project_name='PiperTestOrg_piper_test_master'
|
||||
```
|
||||
|
||||
#### Example 4: Get transparency about successful/failed steps for a specific project
|
||||
|
||||
```
|
||||
```sql
|
||||
select top(build_number,10) AS "Build", build_url, build_quality, fortify, gauge, vulas, opa from step_data WHERE project_name='PiperTestOrg_piper_test_master'
|
||||
```
|
||||
|
||||
@ -192,6 +190,3 @@ select top(build_number,10) AS "Build", build_url, build_quality, fortify, gauge
|
||||
With this query you can create transparency about which steps ran successfully / not successfully in your pipeline and which ones were not executed at all.
|
||||
|
||||
By specifying all the steps you consider relevant in your select statement it is very easy to create this transparency.
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# mailSendNotification
|
||||
|
||||
## Description
|
||||
|
||||
Sends notifications to all potential culprits of a current or previous build failure plus to fixed list of recipients.
|
||||
It will attach the current build log to the email.
|
||||
|
||||
@ -10,6 +11,7 @@ Notifications are sent in following cases:
|
||||
* current build is successful and previous build failed or was unstable
|
||||
|
||||
## Prerequsites
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
@ -20,7 +22,6 @@ Usage of pipeline step:
|
||||
mailSendNotification script: this
|
||||
```
|
||||
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
@ -37,7 +38,7 @@ mailSendNotification script: this
|
||||
|projectName|no|||
|
||||
|wrapInNode|no|`false`||
|
||||
|
||||
### Details:
|
||||
### Details
|
||||
|
||||
* `script` defines the global script environment of the Jenkinsfile run. Typically `this` is passed to this parameter. This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md) for storing the measured duration.
|
||||
* `buildResult` may be used to overrule the build result coming from `currentBuild.result`. This is for example used in the step `pipelineRestartSteps`
|
||||
@ -56,7 +57,6 @@ mailSendNotification script: this
|
||||
* `projectName` may be used to specify a different name in the email subject.
|
||||
* `wrapInNode` needs to be set to `true` if step is used outside of a node context, e.g. post actions in a declarative pipeline script.
|
||||
|
||||
|
||||
## Step configuration
|
||||
|
||||
We recommend to define values of step parameters via [config.yml file](../configuration.md).
|
||||
@ -78,19 +78,13 @@ In following sections the configuration is possible:
|
||||
|wrapInNode||X|X|
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -24,7 +24,7 @@ Executes a maven command inside a Docker container.
|
||||
to access the commonPipelineEnvironment for retrieving, for example,
|
||||
configuration parameters.
|
||||
* `dockerImage` Name of the docker image that should be used.
|
||||
* `globalSettingsFile` Path or url to the mvn settings file that should be used as global settings file.
|
||||
* `globalSettingsFile` Path or url to the mvn settings file that should be used as global settings file.
|
||||
* `projectSettingsFile` Path or url to the mvn settings file that should be used as project settings file.
|
||||
* `pomPath` Path to the pom file that should be used.
|
||||
* `flags` Flags to provide when running mvn.
|
||||
@ -34,6 +34,7 @@ Executes a maven command inside a Docker container.
|
||||
* `logSuccessfulMavenTransfers` configures maven to log successful downloads. This is set to `false` by default to reduce the noise in build logs.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `dockerImage`
|
||||
@ -51,7 +52,3 @@ None
|
||||
```groovy
|
||||
mavenExecute script: this, goals: 'clean install'
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# mtaBuild
|
||||
|
||||
## Description
|
||||
|
||||
Executes the SAP Multitarget Application Archive Builder to create an mtar archive of the application.
|
||||
|
||||
Before doing this, validates that SAP Multitarget Application Archive Builder exists and the version is compatible.
|
||||
@ -8,12 +9,14 @@ Before doing this, validates that SAP Multitarget Application Archive Builder ex
|
||||
Note that a version is formed by `major.minor.patch`, and a version is compatible to another version if the minor and patch versions are higher, but the major version is not, e.g. if 3.39.10 is the expected version, 3.39.11 and 3.40.1 would be compatible versions, but 4.0.1 would not be a compatible version.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* A docker image meeting the following requirements
|
||||
* **SAP MTA Archive Builder 1.0.6 or compatible version** - can be downloaded from [SAP Development Tools](https://tools.hana.ondemand.com/#cloud).
|
||||
* **Java 8 or compatible version** - necessary to run the `mta.jar` file.
|
||||
* **NodeJS installed** - the MTA Builder uses `npm` to download node module dependencies such as `grunt`.
|
||||
* **SAP MTA Archive Builder 1.0.6 or compatible version** - can be downloaded from [SAP Development Tools](https://tools.hana.ondemand.com/#cloud).
|
||||
* **Java 8 or compatible version** - necessary to run the `mta.jar` file.
|
||||
* **NodeJS installed** - the MTA Builder uses `npm` to download node module dependencies such as `grunt`.
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -----------------|-----------|--------------------------------------------------------|--------------------|
|
||||
| `script` | yes | | |
|
||||
@ -31,11 +34,12 @@ Note that a version is formed by `major.minor.patch`, and a version is compatibl
|
||||
* `dockerOptions` Docker options to be set when starting the container. It can be a list or a string.
|
||||
* `buildTarget` - The target platform to which the mtar can be deployed.
|
||||
* `extension` - The path to the extension descriptor file.
|
||||
* `mtaJarLocation` - The location of the SAP Multitarget Application Archive Builder jar file, including file name and extension. First, the location is retrieved from the environment variables using the environment variable`MTA_JAR_LOCATION`. If no environment variable is provided, the location is retrieved from the parameters, or the step configuration using the key `mtaJarLocation`. If SAP Multitarget Application Archive Builder is not found on one of the previous locations an AbortException is thrown.
|
||||
Note that the environment variable `MTA_JAR_LOCATION` has priority. In case that the script runs on multiple nodes, SAP Multitarget Application Archive Builder must be located on all the nodes, therefore the environment variable must be also configured on all the nodes.
|
||||
* `mtaJarLocation` - The location of the SAP Multitarget Application Archive Builder jar file, including file name and extension. First, the location is retrieved from the environment variables using the environment variable `MTA_JAR_LOCATION`. If no environment variable is provided, the location is retrieved from the parameters, or the step configuration using the key `mtaJarLocation`. If SAP Multitarget Application Archive Builder is not found on one of the previous locations an AbortException is thrown.
|
||||
Note that the environment variable `MTA_JAR_LOCATION` has priority. In case that the script runs on multiple nodes, SAP Multitarget Application Archive Builder must be located on all the nodes, therefore the environment variable must be also configured on all the nodes.
|
||||
* `applicationName` - The name of the application which is being built. If the parameter has been provided and no `mta.yaml` exists, the `mta.yaml` will be automatically generated using this parameter and the information (`name` and `version`) from `package.json` before the actual build starts.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `dockerImage`
|
||||
@ -45,22 +49,25 @@ The following parameters can also be specified as step parameters using the glob
|
||||
* `applicationName`
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
1. The file name of the resulting archive is written to the `commonPipelineEnvironment` with variable name `mtarFileName`.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `AbortException`:
|
||||
* If SAP Multitarget Application Archive Builder is not found.
|
||||
* If there is an invalid `buildTarget`.
|
||||
* If there is no key `ID` inside the `mta.yaml` file.
|
||||
* If SAP Multitarget Application Archive Builder is not found.
|
||||
* If there is an invalid `buildTarget`.
|
||||
* If there is no key `ID` inside the `mta.yaml` file.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
def mtarFileName
|
||||
dir('/path/to/FioriApp'){
|
||||
mtarFileName = mtaBuild script:this, buildTarget: 'NEO'
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# neoDeploy
|
||||
|
||||
## Description
|
||||
|
||||
Deploys an Application to SAP Cloud Platform (SAP CP) using the SAP Cloud Platform Console Client (Neo Java Web SDK).
|
||||
|
||||
Before doing this, validates that SAP Cloud Platform Console Client is installed and the version is compatible.
|
||||
@ -8,19 +9,19 @@ Before doing this, validates that SAP Cloud Platform Console Client is installed
|
||||
Note that a version is formed by `major.minor.patch`, and a version is compatible to another version if the minor and patch versions are higher, but the major version is not, e.g. if 3.39.10 is the expected version, 3.39.11 and 3.40.1 would be compatible versions, but 4.0.1 would not be a compatible version.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **SAP CP account** - the account to where the application is deployed.
|
||||
* **SAP CP user for deployment** - a user with deployment permissions in the given account.
|
||||
* **Jenkins credentials for deployment** - must be configured in Jenkins credentials with a dedicated Id.
|
||||
|
||||
![Jenkins credentials configuration](../images/neo_credentials.png)
|
||||
|
||||
* **Neo Java Web SDK 3.39.10 or compatible version** - can be downloaded from [Maven Central](http://central.maven.org/maven2/com/sap/cloud/neo-java-web-sdk/). The Neo Java Web SDK
|
||||
needs to be extracted into the folder provided by `neoHome`. In case this parameters is not provided and there is no NEO_HOME parameter in the environment
|
||||
`<neoRoot>/tools` needs to be in the `PATH`. This step is also capable of triggering the neo deploy tool provided inside a docker image.
|
||||
* **Neo Java Web SDK 3.39.10 or compatible version** - can be downloaded from [Maven Central](http://central.maven.org/maven2/com/sap/cloud/neo-java-web-sdk/). The Neo Java Web SDK needs to be extracted into the folder provided by `neoHome`. In case this parameters is not provided and there is no NEO_HOME parameter in the environment `<neoRoot>/tools` needs to be in the `PATH`. This step is also capable of triggering the neo deploy tool provided inside a docker image.
|
||||
|
||||
* **Java 8 or compatible version** - needed by the *Neo-Java-Web-SDK*
|
||||
|
||||
## Parameters when using MTA deployment method (default - MTA)
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -------------------|-----------|-------------------------------|-------------------------------------------------|
|
||||
| `account` | no | | |
|
||||
@ -34,6 +35,7 @@ needs to be extracted into the folder provided by `neoHome`. In case this parame
|
||||
| `script` | yes | | |
|
||||
|
||||
## Parameters when using WAR file deployment method with .properties file (WAR_PROPERTIESFILE)
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -------------------|-----------|-------------------------------|-------------------------------------------------|
|
||||
| `archivePath` | no | | |
|
||||
@ -45,6 +47,7 @@ needs to be extracted into the folder provided by `neoHome`. In case this parame
|
||||
| `warAction` | yes | `'deploy'` | `'deploy'`, `'rolling-update'` |
|
||||
|
||||
## Parameters when using WAR file deployment method witout .properties file - with parameters (WAR_PARAMS)
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -------------------|-----------|-------------------------------|-------------------------------------------------|
|
||||
| `account` | no | | |
|
||||
@ -62,7 +65,6 @@ needs to be extracted into the folder provided by `neoHome`. In case this parame
|
||||
| `vmSize` | no | `'lite'` | `'lite'`, `'pro'`, `'prem'`, `'prem-plus'` |
|
||||
| `warAction` | yes | `'deploy'` | `'deploy'`, `'rolling-update'` |
|
||||
|
||||
|
||||
* `account` - The SAP Cloud Platform account to deploy to.
|
||||
* `applicationName` - Name of the application you want to manage, configure, or deploy
|
||||
* `archivePath`- The path to the archive for deployment to SAP CP. If not provided `mtarFilePath` from commom pipeline environment is used instead.
|
||||
@ -82,6 +84,7 @@ needs to be extracted into the folder provided by `neoHome`. In case this parame
|
||||
The step is prepared for being executed in docker. The corresponding parameters can be applied. See step `dockerExecute` for details.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `account`
|
||||
@ -93,33 +96,37 @@ The following parameters can also be specified as step parameters using the glob
|
||||
* `neoHome`
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `Exception`:
|
||||
* If `archivePath` is not provided.
|
||||
* If `propertiesFile` is not provided (when using `'WAR_PROPERTIESFILE'` deployment mode).
|
||||
* If `applicationName` is not provided (when using `'WAR_PARAMS'` deployment mode).
|
||||
* If `runtime` is not provided (when using `'WAR_PARAMS'` deployment mode).
|
||||
* If `runtime-version` is not provided (when using `'WAR_PARAMS'` deployment mode).
|
||||
* If `archivePath` is not provided.
|
||||
* If `propertiesFile` is not provided (when using `'WAR_PROPERTIESFILE'` deployment mode).
|
||||
* If `applicationName` is not provided (when using `'WAR_PARAMS'` deployment mode).
|
||||
* If `runtime` is not provided (when using `'WAR_PARAMS'` deployment mode).
|
||||
* If `runtime-version` is not provided (when using `'WAR_PARAMS'` deployment mode).
|
||||
* `AbortException`:
|
||||
* If neo-java-web-sdk is not installed, or `neoHome`is wrong.
|
||||
* If `deployHost` is wrong.
|
||||
* If `deployAccount` is wrong.
|
||||
* If neo-java-web-sdk is not installed, or `neoHome`is wrong.
|
||||
* If `deployHost` is wrong.
|
||||
* If `deployAccount` is wrong.
|
||||
* `CredentialNotFoundException`:
|
||||
* If the credentials cannot be resolved.
|
||||
* If the credentials cannot be resolved.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
neoDeploy script: this, archivePath: 'path/to/archiveFile.mtar', credentialsId: 'my-credentials-id'
|
||||
```
|
||||
|
||||
Example configuration:
|
||||
|
||||
```
|
||||
```yaml
|
||||
steps:
|
||||
<...>
|
||||
neoDeploy:
|
||||
|
@ -1,6 +1,7 @@
|
||||
# pipelineExecute
|
||||
|
||||
## Description
|
||||
|
||||
Loads a pipeline from a git repository. The idea is to set up a pipeline job in Jenkins that loads a minimal pipeline, which in turn loads the shared library and then uses this step to load the actual pipeline.
|
||||
|
||||
A centrally maintained pipeline script (Jenkinsfile) can be re-used by
|
||||
@ -40,7 +41,7 @@ none
|
||||
## Exceptions
|
||||
|
||||
* `Exception`
|
||||
* If `repoUrl` is not provided.
|
||||
* If `repoUrl` is not provided.
|
||||
|
||||
## Example
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# pipelineRestartSteps
|
||||
|
||||
## Description
|
||||
|
||||
Support of restarting failed stages or steps in a pipeline is limited in Jenkins.
|
||||
|
||||
This has been documented in the [Jenkins Jira issue JENKINS-33846](https://issues.jenkins-ci.org/browse/JENKINS-33846).
|
||||
@ -16,8 +17,8 @@ The step `pipelineRestartSteps` aims to address this gap and allows individual p
|
||||
This is done in a way that the pipeline waits for user input to restart the pipeline in case of a failure. In case this user input is not provided the pipeline stops after a timeout which can be configured.
|
||||
|
||||
## Prerequisites
|
||||
none
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
||||
@ -36,7 +37,6 @@ pipelineRestartSteps (script: this) {
|
||||
|
||||
In case you cannot use `node` inside this step, please choose the parameter `timeoutInSeconds` carefully!
|
||||
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
@ -45,13 +45,12 @@ pipelineRestartSteps (script: this) {
|
||||
|sendMail|no|`true`||
|
||||
|timeoutInSeconds|no|`900`||
|
||||
|
||||
### Details:
|
||||
### Details
|
||||
|
||||
* `script` defines the global script environment of the Jenkinsfile run. Typically `this` is passed to this parameter. This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md) for storing the measured duration.
|
||||
* If `sendMail: true` the step `mailSendNotification` will be triggered in case of an error
|
||||
* `timeoutInSeconds` defines the time period where the job waits for input. Default is 15 minutes. Once this time is passed the job enters state FAILED.
|
||||
|
||||
|
||||
## Step configuration
|
||||
|
||||
We recommend to define values of step parameters via [config.yml file](../configuration.md).
|
||||
@ -65,11 +64,13 @@ In following sections the configuration is possible:
|
||||
|timeoutInSeconds|X|X|X|
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
none
|
||||
|
||||
none
|
||||
|
@ -1,9 +1,11 @@
|
||||
# pipelineStashFiles
|
||||
|
||||
## Description
|
||||
|
||||
This step stashes files that are needed in other build steps (on other nodes).
|
||||
|
||||
## Prerequsites
|
||||
|
||||
none
|
||||
|
||||
## Parameters
|
||||
@ -41,6 +43,7 @@ The step is stashing files before and after the build. This is due to the fact,
|
||||
* `stashExcludes: [tests: '**/NOTRELEVANT.*]`
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* runOpaTests
|
||||
@ -48,7 +51,6 @@ The following parameters can also be specified as step parameters using the glob
|
||||
* stashExcludes
|
||||
* stashIncludes
|
||||
|
||||
|
||||
## Explanation of pipeline step
|
||||
|
||||
Usage of pipeline step:
|
||||
@ -58,5 +60,3 @@ pipelineStashFiles script: this {
|
||||
mavenExecute script: this, ...
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
## Description
|
||||
|
||||
Loads the pipeline library default values from the file `resources/default_pipeline_environment.yml`.
|
||||
Afterwards the values can be loaded by the method: `ConfigurationLoader.defaultStepConfiguration`
|
||||
Afterwards the values can be loaded by the method: `ConfigurationLoader.defaultStepConfiguration`
|
||||
|
||||
## Parameters
|
||||
|
||||
@ -22,7 +22,3 @@ None
|
||||
```groovy
|
||||
prepareDefaultValues()
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -7,6 +7,7 @@ Enables UI test execution with Selenium in a sidecar container.
|
||||
The step executes a closure (see example below) connecting to a sidecar container with a Selenium Server.
|
||||
|
||||
When executing in a
|
||||
|
||||
* local Docker environment, please make sure to set Selenium host to **`selenium`** in your tests.
|
||||
* Kubernetes environment, plese make sure to set Seleniums host to **`localhost`** in your tests.
|
||||
|
||||
@ -32,7 +33,8 @@ seleniumExecuteTests (script: this) {
|
||||
Example based on http://webdriver.io/guide/getstarted/modes.html and http://webdriver.io/guide.html
|
||||
|
||||
#### Configuration for Local Docker Environment
|
||||
```
|
||||
|
||||
```js
|
||||
var webdriverio = require('webdriverio');
|
||||
var options = {
|
||||
host: 'selenium',
|
||||
@ -42,8 +44,10 @@ var options = {
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
#### Configuration for Kubernetes Environment
|
||||
```
|
||||
|
||||
```js
|
||||
var webdriverio = require('webdriverio');
|
||||
var options = {
|
||||
host: 'localhost',
|
||||
@ -56,7 +60,7 @@ var options = {
|
||||
|
||||
#### Test Code (index.js)
|
||||
|
||||
```
|
||||
```js
|
||||
// ToDo: add configuration from above
|
||||
|
||||
webdriverio
|
||||
@ -82,7 +86,7 @@ webdriverio
|
||||
|dockerEnvVars|no|||
|
||||
|dockerImage|no|buildTool=`maven`: `maven:3.5-jdk-8`<br />buildTool=`npm`: `node:8-stretch`<br />||
|
||||
|dockerName|no|buildTool=`maven`: `maven`<br />buildTool=`npm`: `npm`<br />||
|
||||
|dockerWorkspace|no|buildTool=`maven`: ``<br />buildTool=`npm`: `/home/node`<br />||
|
||||
|dockerWorkspace|no|buildTool=`maven`: <br />buildTool=`npm`: `/home/node`<br />||
|
||||
|failOnError|no|`true`||
|
||||
|gitBranch|no|||
|
||||
|gitSshKeyCredentialsId|no|``||
|
||||
@ -134,10 +138,13 @@ In following sections the configuration is possible:
|
||||
|testRepository|X|X|X|
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
@ -1,6 +1,7 @@
|
||||
# setupCommonPipelineEnvironment
|
||||
|
||||
## Description
|
||||
|
||||
Initializes the [`commonPipelineEnvironment`](commonPipelineEnvironment.md), which is used throughout the complete pipeline.
|
||||
|
||||
!!! tip
|
||||
@ -8,6 +9,7 @@ Initializes the [`commonPipelineEnvironment`](commonPipelineEnvironment.md), whi
|
||||
Then subsequent pipeline steps consume the information from `commonPipelineEnvironment`; it does not need to be passed to pipeline steps explicitly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* A **configuration file** with properties (default location: `.pipeline/config.properties`). The property values are used as default values in many pipeline steps.
|
||||
|
||||
## Parameters
|
||||
@ -21,18 +23,23 @@ Initializes the [`commonPipelineEnvironment`](commonPipelineEnvironment.md), whi
|
||||
* `configFile` - Property file defining project specific settings.
|
||||
|
||||
## Step configuration
|
||||
|
||||
none
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
none
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
setupCommonPipelineEnvironment script: this
|
||||
```
|
||||
|
@ -1,6 +1,7 @@
|
||||
# testsPublishResults
|
||||
|
||||
## Description
|
||||
|
||||
This step can publish test results from various sources.
|
||||
|
||||
## Prerequsites
|
||||
@ -49,7 +50,7 @@ Available parameters:
|
||||
|
||||
Each of the parameters `junit`, `jacoco`, `cobertura` and `jmeter` can be set to `true` or `false` but also to a map of parameters to hand in different settings for the tools.
|
||||
|
||||
**junit**
|
||||
### junit
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -58,7 +59,7 @@ Each of the parameters `junit`, `jacoco`, `cobertura` and `jmeter` can be set to
|
||||
| updateResults | no | `false` | true, false |
|
||||
| allowEmptyResults | no | `true` | true, false |
|
||||
|
||||
**jacoco**
|
||||
### jacoco
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -68,7 +69,7 @@ Each of the parameters `junit`, `jacoco`, `cobertura` and `jmeter` can be set to
|
||||
| archive | no | `false` | true, false |
|
||||
| allowEmptyResults | no | `true` | true, false |
|
||||
|
||||
**cobertura**
|
||||
### cobertura
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -77,7 +78,7 @@ Each of the parameters `junit`, `jacoco`, `cobertura` and `jmeter` can be set to
|
||||
| allowEmptyResults | no | `true` | true, false |
|
||||
| onlyStableBuilds | no | `true` | true, false |
|
||||
|
||||
**jmeter**
|
||||
### jmeter
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ----------|-----------|---------|-----------------|
|
||||
@ -99,6 +100,7 @@ Each of the parameters `junit`, `jacoco`, `cobertura` and `jmeter` can be set to
|
||||
| allowEmptyResults | no | `true` | true, false |
|
||||
|
||||
## Step configuration
|
||||
|
||||
Following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `junit`
|
||||
@ -107,15 +109,19 @@ Following parameters can also be specified as step parameters using the global c
|
||||
* `jmeter`
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
none
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
// publish test results with coverage
|
||||
testsPublishResults(
|
||||
|
@ -1,13 +1,16 @@
|
||||
# toolValidate
|
||||
|
||||
## Description
|
||||
|
||||
Checks the existence and compatibility of a tool, necessary for a successful pipeline execution.
|
||||
In case a violation is found, an exception is raised.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
none
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -----------------|-----------|-----------------------------------|----------------------------|
|
||||
| `tool` | yes | | 'java', 'mta', 'neo' |
|
||||
@ -17,22 +20,26 @@ none
|
||||
* `home` The location in the file system where Jenkins can access the tool.
|
||||
|
||||
## Step configuration
|
||||
|
||||
none
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `IllegalArgumentException`:
|
||||
* If at least one of the parameters `tool`, `home` is not provided.
|
||||
* If at least one of the parameters `tool`, `home` is not provided.
|
||||
* `AbortException`:
|
||||
* If `tool` is not supported.
|
||||
* If `tool` is not supported.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
toolValidate tool: 'neo', home:'/path/to/neo-java-web-sdk'
|
||||
```
|
||||
|
||||
|
@ -1,15 +1,18 @@
|
||||
# transportRequestCreate
|
||||
|
||||
## Description
|
||||
|
||||
Creates
|
||||
|
||||
* a Transport Request for a Change Document on the Solution Manager (type `SOLMAN`) or
|
||||
* a Transport Request inside an ABAP system (type`CTS`)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **[Change Management Client 2.0.0 or compatible version](http://central.maven.org/maven2/com/sap/devops/cmclient/dist.cli/)** - available for download on Maven Central.
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -----------------|-----------|--------------------------------------------------------|--------------------|
|
||||
| `script` | yes | | |
|
||||
@ -41,15 +44,16 @@ Creates
|
||||
* `transportType` - for type `CTS` only. Typically `W` (workbench) or `C` customizing.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The step is configured using a customer configuration file provided as
|
||||
resource in an custom shared library.
|
||||
|
||||
```
|
||||
```groovy
|
||||
@Library('piper-library-os@master') _
|
||||
|
||||
// the shared lib containing the additional configuration
|
||||
// needs to be configured in Jenkins
|
||||
@Library(foo@master') __
|
||||
@Library('foo@master') __
|
||||
|
||||
// inside the shared lib denoted by 'foo' the additional configuration file
|
||||
// needs to be located under 'resources' ('resoures/myConfig.yml')
|
||||
@ -57,10 +61,10 @@ prepareDefaultValues script: this,
|
||||
customDefaults: 'myConfig.yml'
|
||||
```
|
||||
|
||||
Example content of ```'resources/myConfig.yml'``` in branch ```'master'``` of the repository denoted by
|
||||
```'foo'```:
|
||||
Example content of `'resources/myConfig.yml'` in branch `'master'` of the repository denoted by
|
||||
`'foo'`:
|
||||
|
||||
```
|
||||
```yaml
|
||||
general:
|
||||
changeManagement:
|
||||
changeDocumentLabel: 'ChangeDocument\s?:'
|
||||
@ -79,7 +83,7 @@ all change managment related steps.
|
||||
|
||||
The properties can also be configured on a per-step basis:
|
||||
|
||||
```
|
||||
```yaml
|
||||
[...]
|
||||
steps:
|
||||
transportRequestCreate:
|
||||
@ -92,15 +96,18 @@ The properties can also be configured on a per-step basis:
|
||||
The parameters can also be provided when the step is invoked. For examples see below.
|
||||
|
||||
## Return value
|
||||
|
||||
The id of the Transport Request that has been created.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `AbortException`:
|
||||
* If the creation of the transport request fails.
|
||||
* If the creation of the transport request fails.
|
||||
* `IllegalStateException`:
|
||||
* If the change id is not provided.
|
||||
* If the change id is not provided.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
// SOLMAN
|
||||
def transportRequestId = transportRequestCreate script:this,
|
||||
@ -119,4 +126,3 @@ def transportRequestId = transportRequestCreate script:this,
|
||||
endpoint: 'https://example.org/cm'
|
||||
]
|
||||
```
|
||||
|
||||
|
@ -1,12 +1,15 @@
|
||||
# transportRequestRelease
|
||||
|
||||
## Description
|
||||
|
||||
Releases a Transport Request.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **[Change Management Client 2.0.0 or compatible version](http://central.maven.org/maven2/com/sap/devops/cmclient/dist.cli/)** - available for download on Maven Central.
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -----------------|-----------|--------------------------------------------------------|--------------------|
|
||||
| `script` | yes | | |
|
||||
@ -33,15 +36,16 @@ Releases a Transport Request.
|
||||
* `changeManagement/git/format` - Specifies what part of the commit is scanned. By default the body of the commit message is scanned.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The step is configured using a customer configuration file provided as
|
||||
resource in an custom shared library.
|
||||
|
||||
```
|
||||
```groovy
|
||||
@Library('piper-library-os@master') _
|
||||
|
||||
// the shared lib containing the additional configuration
|
||||
// needs to be configured in Jenkins
|
||||
@Library(foo@master') __
|
||||
@Library('foo@master') __
|
||||
|
||||
// inside the shared lib denoted by 'foo' the additional configuration file
|
||||
// needs to be located under 'resources' ('resoures/myConfig.yml')
|
||||
@ -49,10 +53,10 @@ prepareDefaultValues script: this,
|
||||
customDefaults: 'myConfig.yml'
|
||||
```
|
||||
|
||||
Example content of ```'resources/myConfig.yml'``` in branch ```'master'``` of the repository denoted by
|
||||
```'foo'```:
|
||||
Example content of `'resources/myConfig.yml'` in branch `'master'` of the repository denoted by
|
||||
`'foo'`:
|
||||
|
||||
```
|
||||
```yaml
|
||||
general:
|
||||
changeManagement:
|
||||
changeDocumentLabel: 'ChangeDocument\s?:'
|
||||
@ -70,7 +74,7 @@ The properties configured in section `'general/changeManagement'` are shared bet
|
||||
|
||||
The properties can also be configured on a per-step basis:
|
||||
|
||||
```
|
||||
```yaml
|
||||
[...]
|
||||
steps:
|
||||
transportRequestRelease:
|
||||
@ -83,16 +87,19 @@ The properties can also be configured on a per-step basis:
|
||||
The parameters can also be provided when the step is invoked. For examples see below.
|
||||
|
||||
## Return value
|
||||
|
||||
None.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `IllegalArgumentException`:
|
||||
* If the change id is not provided (`SOLMAN` only)
|
||||
* If the transport request id is not provided.
|
||||
* If the change id is not provided (`SOLMAN` only)
|
||||
* If the transport request id is not provided.
|
||||
* `AbortException`:
|
||||
* If the release of the transport request fails.
|
||||
* If the release of the transport request fails.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
// SOLMAN
|
||||
transportRequestRelease script:this,
|
||||
@ -110,4 +117,3 @@ transportRequestRelease script:this,
|
||||
endpoint: 'https://example.org/cm'
|
||||
]
|
||||
```
|
||||
|
||||
|
@ -1,12 +1,15 @@
|
||||
# transportRequestUploadFile
|
||||
|
||||
## Description
|
||||
|
||||
Uploads a file to a Transport Request.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **[Change Management Client 2.0.0 or compatible version](http://central.maven.org/maven2/com/sap/devops/cmclient/dist.cli/)** - available for download on Maven Central.
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| -----------------|-----------|--------------------------------------------------------|--------------------|
|
||||
| `script` | yes | | |
|
||||
@ -38,15 +41,16 @@ Uploads a file to a Transport Request.
|
||||
* `changeManagement/git/format` - Specifies what part of the commit is scanned. By default the body of the commit message is scanned.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The step is configured using a customer configuration file provided as
|
||||
resource in an custom shared library.
|
||||
|
||||
```
|
||||
```groovy
|
||||
@Library('piper-library-os@master') _
|
||||
|
||||
// the shared lib containing the additional configuration
|
||||
// needs to be configured in Jenkins
|
||||
@Library(foo@master') __
|
||||
@Library('foo@master') __
|
||||
|
||||
// inside the shared lib denoted by 'foo' the additional configuration file
|
||||
// needs to be located under 'resources' ('resoures/myConfig.yml')
|
||||
@ -54,10 +58,10 @@ prepareDefaultValues script: this,
|
||||
customDefaults: 'myConfig.yml'
|
||||
```
|
||||
|
||||
Example content of ```'resources/myConfig.yml'``` in branch ```'master'``` of the repository denoted by
|
||||
```'foo'```:
|
||||
Example content of `'resources/myConfig.yml'` in branch `'master'` of the repository denoted by
|
||||
`'foo'`:
|
||||
|
||||
```
|
||||
```yaml
|
||||
general:
|
||||
changeManagement:
|
||||
changeDocumentLabel: 'ChangeDocument\s?:'
|
||||
@ -75,7 +79,7 @@ The properties configured in section `'general/changeManagement'` are shared bet
|
||||
|
||||
The properties can also be configured on a per-step basis:
|
||||
|
||||
```
|
||||
```yaml
|
||||
[...]
|
||||
steps:
|
||||
transportRequestUploadFile:
|
||||
@ -89,18 +93,21 @@ The properties can also be configured on a per-step basis:
|
||||
The parameters can also be provided when the step is invoked. For examples see below.
|
||||
|
||||
## Return value
|
||||
|
||||
None.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `IllegalArgumentException`:
|
||||
* If the change id is not provided (`SOLMAN` only).
|
||||
* If the transport request id is not provided.
|
||||
* If the application id is not provided (`SOLMAN` only).
|
||||
* If the file path is not provided.
|
||||
* If the change id is not provided (`SOLMAN` only).
|
||||
* If the transport request id is not provided.
|
||||
* If the application id is not provided (`SOLMAN` only).
|
||||
* If the file path is not provided.
|
||||
* `AbortException`:
|
||||
* If the upload fails.
|
||||
* If the upload fails.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
// SOLMAN
|
||||
transportRequestUploadFile script:this,
|
||||
@ -121,4 +128,3 @@ transportRequestUploadFile script:this,
|
||||
endpoint: 'https://example.org/cm'
|
||||
]
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# <script name>
|
||||
|
||||
## Description
|
||||
|
||||
Brief description.
|
||||
|
||||
## Constructors
|
||||
@ -8,6 +9,7 @@ Brief description.
|
||||
### <script name>(<arguments>)
|
||||
|
||||
#### Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ---------------|-----------|-----------------------------------|--------------------|
|
||||
| | | | |
|
||||
@ -15,36 +17,43 @@ Brief description.
|
||||
* `<parameter>` - Detailed description of each parameter.
|
||||
|
||||
#### Exceptions
|
||||
|
||||
* `ExceptionType`
|
||||
* List of cases when exception is thrown.
|
||||
* List of cases when exception is thrown.
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
|
||||
```
|
||||
|
||||
|
||||
## Method Details
|
||||
|
||||
### <method>(<arguments>)
|
||||
|
||||
#### Description
|
||||
|
||||
Brief description.
|
||||
|
||||
#### Parameters
|
||||
|
||||
* `<parameter>` - Detailed description of each parameter.
|
||||
|
||||
#### Return value
|
||||
|
||||
none
|
||||
|
||||
#### Side effects
|
||||
|
||||
none
|
||||
|
||||
#### Exceptions
|
||||
|
||||
* `ExceptionType`
|
||||
* List of cases when exception is thrown.
|
||||
* List of cases when exception is thrown.
|
||||
|
||||
#### Example
|
||||
|
||||
```groovy
|
||||
|
||||
```
|
||||
|
@ -1,12 +1,15 @@
|
||||
# <step name>
|
||||
|
||||
## Description
|
||||
|
||||
Brief description.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* **<prerequisite>** - further description.
|
||||
|
||||
## Parameters
|
||||
|
||||
| parameter | mandatory | default | possible values |
|
||||
| ---------------|-----------|-----------------------------------|--------------------|
|
||||
| | | | |
|
||||
@ -14,21 +17,26 @@ Brief description.
|
||||
* `<parameter>` - Detailed description of each parameter.
|
||||
|
||||
## Step configuration
|
||||
|
||||
The following parameters can also be specified as step parameters using the global configuration file:
|
||||
|
||||
* `<parameter>`
|
||||
|
||||
## Return value
|
||||
|
||||
none
|
||||
|
||||
## Side effects
|
||||
|
||||
none
|
||||
|
||||
## Exceptions
|
||||
|
||||
* `ExceptionType`
|
||||
* List of cases when exception is thrown.
|
||||
* List of cases when exception is thrown.
|
||||
|
||||
## Example
|
||||
|
||||
```groovy
|
||||
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user