1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-14 11:03:09 +02:00
Commit Graph

1113 Commits

Author SHA1 Message Date
Daniel Kurzynski
4814bea547
Fix npmExecuteEndToEndTests (#1818) 2020-07-17 17:54:28 +02:00
Daniel Kurzynski
26e817ca29
Make stage locking more flexible (#1811) 2020-07-17 14:27:21 +02:00
Kevin Hudemann
eea0c1f35e
Use npmExecuteEndToEndTests step in Release/Acceptance stage if it is configured (#1813)
This change enables the use of the new npmExecuteEndToEndTests in the
stages release and acceptance if it is configured. If it is not
configured, nothing should change.
2020-07-17 13:59:14 +02:00
Daniel Kurzynski
f933788d86
Pass stageName through to steps (#1796) 2020-07-17 13:32:49 +02:00
Kevin Hudemann
58e7e4be44
Add buildDescriptorExcludeList parameter to npmExecuteScripts step (#1800)
This change adds a buildDescriptorExcludeList parameter to
npmExecuteScripts, to enable the exclusion of certain directories when
executing npm scripts. Previously, npmExecuteScripts could only execute
scripts in all packages.

Now it is possible to provide paths or patterns as elements of the
buildDescriptorExcludeList to exclude packages when executing npm scripts.
2020-07-16 17:16:55 +02:00
Daniel Mieg
90571754bf
Add test cases for stepmeta.go (#1801)
* Add tests

* Remove obsolete comment
2020-07-16 11:09:49 +02:00
Daniel Mieg
5dbb7be6b6
Fix commonPipelineEnvironment issue (#1798)
* Fix write to disk

* Change condition

* Test log output

* Fix

* Remove test log
2020-07-15 15:45:36 +02:00
Daniel Mieg
7f69f4eb16
Support lists in commonPipelineEnvironment (#1797)
* Enable write Lists

* Enable read

* Add tests

* Fix unit test

* CodeClimate Refactor

* Add comment
2020-07-15 10:09:42 +02:00
Daniel Kurzynski
82d8db2423
Reuse mtar file from mtaBuild in tmsUpload and cloudFoundryDeploy (#1794) 2020-07-15 08:32:05 +02:00
Kevin Hudemann
ebfb208528
Add report handling to npmExecuteEndToEndTests (#1791)
This change adds the missing report handling to npmExecuteEndToEndTests
step. In addition, it extends the testsPublishResults step to support
cucumber test results.
2020-07-14 13:33:49 +02:00
Chris Bo
9558b47268
Introducing new step 'gctsExecuteABAPUnitTests' (#1532)
* add new step 'gctsExecuteABAPUnitTests'

* added new step entries

* small wording improvement

* regenerated

* fixed unit tests

* adjusted prerequisites

* removed telemetry

* remove command

* moved functions to http package

* newly generated

* remove commented code

* use credentials ID in config.yaml

* add supported protocols to docu

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-07-14 10:58:57 +02:00
Kevin Hudemann
fd98d6279f
Add step for end to end test execution (#1786)
This change adds the end to end test execution capabilities of the SAP
Cloud SDK pipeline, i.e., the consumer can define a npm script which is
then executed using the npmExecuteScripts step.

The handling of generated results will be provided in a follow up PR.

Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-07-13 15:10:12 +02:00
Florian Wilhelm
ccc77bbc11
Use multicloudDeploy step in Release/Acceptance Stage if it is configured (#1789)
The multicloudDeploy step is newer and more capable compared to the old steps. For pipelines that don't configure the multicloudDeploy step, nothing should change.
2020-07-13 14:26:26 +02:00
Oliver Nocon
111e4de8c3
kanikoExecute - golang version (#1765)
* kanikoExecute golang version

* update entrypoint

* update entrypoint

* update entrypoint

* update entrypoint

* update entrypoint

* add command

* include PR feedback

* remove trailing spaces

* remove defaults for certificates

* Update generated file
2020-07-10 08:07:59 +02:00
MuellerHenrik
b0b7eb607c
Adapt documentation for abap pipeline (#1776)
* Adapt documentation

* Fix typo organization
2020-07-08 15:39:53 +02:00
Kevin Hudemann
c8ca3ea522
Add mta extension credentials handling to cloudFoundryDeploy step and infer deployTool default from buildTool (#1761) 2020-07-06 16:16:48 +02:00
Oliver Nocon
520f2cc975
Fix stashing of piper binary (#1764)
* Update piperExecuteBin.groovy

* update tests
2020-07-06 13:22:36 +02:00
Alejandra Ferreiro Vidal
12e1ff0c60
Add mta extension descriptor (#1729)
Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>
Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-07-06 12:16:06 +02:00
Florian Wilhelm
209d940522
Cf validate app name (#1759)
CF deployment will fail if you have an _ in the app name. Also in general names should only contain alphanumeric chars. Warn users if it does not.
2020-07-06 11:45:36 +02:00
Daniel Kurzynski
e6ab6f815f
Default source for maven deployments to neo (#1755) 2020-07-03 09:56:14 +02:00
Daniel Kurzynski
bfb6fa8b33
Multicloud change config order (#1754) 2020-07-02 16:53:03 +02:00
Oliver Nocon
49b7abb4ca
Fix stashing issue with binrary execution (#1749)
Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-07-02 12:08:56 +02:00
Daniel Kurzynski
be97e07f1c
Expose enableZeroDowntimeDeployment as step parameter (#1751) 2020-07-02 10:50:37 +02:00
Florian Wilhelm
b5dbd0dafc
Cf create services in multiclouddeploy step (#1736) 2020-07-01 17:28:50 +02:00
Kevin Hudemann
12455ae747
Separate log folders for neo deployments (#1747)
Previously, all logs were stored in the same folder and in case of an
error all logs in that folder would be returned to the user. Thus, it
is possible that unrelated logs, i.e., from different deployments (in
case of parallel deployments) are returned to the user.
2020-07-01 16:36:08 +02:00
Kevin Hudemann
89e8209f8e
Add isolation for CF Deployments in multicloudDeploy step (#1742)
This change adds isolation to CF deployments, when using blue-green
deployments in multicloudDeploy step.
2020-07-01 16:08:12 +02:00
Alejandra Ferreiro Vidal
775f6d0b2e
add mtaExtensionDescriptor to cf target (#1720) 2020-06-26 15:04:35 +02:00
Stephan Aßmus
dc99676c8d
Init container map via YAML resource (#1695) 2020-06-24 17:04:58 +02:00
Alejandra Ferreiro Vidal
3d9606022f
add parallel execution to multicloudDeploy (#670)
* add parallelExecution to multicloudDeploy

adds parallel execution to the step multicloudDeploy

* add log

* fix warning

Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>
2020-06-24 10:56:36 +02:00
Christopher Fenner
1d1bf68d96
fix(security): remove duplicate stage wrapper (#1707)
* remove duplicate stage wrapper

fixes #1705

* Update piperPipelineStageSecurity.groovy

* fix trailing spaces
2020-06-24 08:21:41 +02:00
Daniel Mieg
f348c53989
Add ABAP Environment Pipeline (#1555) 2020-06-23 15:56:56 +02:00
Christopher Fenner
1c1c141f3b
fix(influx): pass Sonar token to influx (#1699) 2020-06-23 14:16:44 +02:00
Daniel Kurzynski
654dea4b3e
Load global extensions in setupCommonPipelineEnvironment (#1688)
Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
Co-authored-by: Florian Wilhelm <florian.wilhelm02@sap.com>
2020-06-22 17:52:11 +02:00
lydiazcheng
59f3cddd43
TMS: extend upload mta ext descriptor to node (#1635)
* add APIs for getNodes, getExtDescriptor, putExtDescriptor and uploadExtDescriptor
* add new params and extend the logic to enable upload or update extension descriptor to node
* extends unit tests


Co-authored-by: Zihe Cheng <zihe.cheng@sap.com>
Co-authored-by: Marcus Holl <marcus.holl@sap.com>
2020-06-22 11:34:10 +02:00
Kevin Hudemann
60fa1d5bbf
Add Java-/Typescript linting capabilities (#1636)
This change adds linting support for Java-/TypeScript projects based on the checkDefaultLint and checkUserLint steps from Cloud SDK Pipeline.

Following options are supported:

1. Define a linting script named ci-lint in the package.json file(s) of the project
2. Provide a configuration for ESLint as part of the project
3. If none of the above: ESLint is executed with a general purpose configuration.

Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-06-22 10:12:28 +02:00
Daniel Kurzynski
0d1b94adb3
Add sysadmin capabilities to npmExecuteScripts (#1691) 2020-06-19 16:39:07 +02:00
Oliver Nocon
d602c6e2b9
extend security stage (#1687)
* extend security stage

Add new steps
* checkmarxExecuteScan
* fortifyExecuteScan

closes #1650

* update tests
2020-06-19 12:35:02 +02:00
Daniel Kurzynski
6dfd83d246
Add ability to load custom defaults from secured resource (#1680)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-06-18 12:39:55 +02:00
Roland Stengel
f7015b562d
remove library statement from piperPipeline (#1595)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-06-18 08:24:47 +02:00
Chris Bo
e9ad8c5e9c
Introducing new step 'gctsCloneRepository' (#1468)
* added new step gctsCloneRepository

* enhanced docu

* adjusted test case name

* enhanced docu

* refined error messages

* regenerated & remove unused Groovy imports

* small change

* remove execRunner

* Update documentation/docs/steps/gctsCloneRepository.md

* regenerated

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-06-18 07:45:22 +02:00
Daniel Kurzynski
498e527c6c
Add npmExecuteScripts to integration stage (#1674)
Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-06-17 18:17:05 +02:00
Oliver Nocon
8e74952166
Switch Detect scan to golang implementation (#1673)
* Switch Detect scan to golang implementation

* update workingDir

* use universal container as default

* Switch to official curl image

* fix code climate issue

* switch default image

* update docker options

* update CommonStepsTest

* remove invalid groovy test

* clean up defaults

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-06-16 17:21:59 +02:00
Oliver Nocon
f125ba5b60
adding groovy wrapper for containerSaveImage (#1663) 2020-06-15 16:44:49 +02:00
Gabriel Borges
4e73a699c2
doc(kubernetes): Make plugin link clickable (#1657)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-06-15 07:03:53 +02:00
Sven Merk
89f5ca9da1
whitesourceExecuteScan: Fix scanType: docker related issues (#1644)
Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-06-12 16:55:16 +02:00
sudeepsukumar
702664645c
feat(newman): fetch xsuaa credentials in newman execution (#1325)
* fetch xsuaa credentials in newman execution

* refactor CfUtils and moving to integration package

* removing CfUtils from old package com.sap.piper

* avoid config.verbose as "null"

* variable renamed for consistent naming

* handling NPE and other comments incorp

* added test cases

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-06-12 10:04:03 +02:00
Daniel Kurzynski
1ee13b358b
Store build tool in commonPipelineEnvironment (#1645) 2020-06-09 14:52:03 +02:00
Stephan Aßmus
56699ab019
Run artifactPrepareVersion in maven container if necessary (#1634)
* The metadata for artifactPrepareVersion-go specifies a container for when the buildTool is maven.
* The alias to 'mavenExecute' was removed. The problem with this is that when a section containers is included in the metadata, dockerImage will always be picked up from mavenExecute, the conditional dependency on buildTool will not even be considered. Parameters such as m2Path, projectSettingsFile and globalSettingsFile should be configured in general/maven if necessary.
* When the step ends up being executed within dockerExecuteOnKubernetes, we need to preserve the .git folder. This folder would normally be excluded by the default excludes of the stash step. There was already a comment that suppressing this behavior by passing useDefaultExcludes: false was problematic (unfortunately without going into details), so I've added a new parameter to dockerExecute and dockerExecuteOnKubernetes named stashNoDefaultExcludes (note the reverted meaning to ease preserving the default behavior when this parameter is not provided). This parameter is passed to piperExecuteBin from the artifactPreferVersion groovy wrapper.
2020-06-08 17:08:05 +02:00
Florian Wilhelm
c490ce9211
Use go-based npmExecuteScripts, mavenBuild in buildExecute (#1622) 2020-06-04 17:53:06 +02:00
Maximilian Lenkeit
10e5bf98f8
artifactPrepareVersion: remember original artifact version (#1600)
* Update resources.go

* expose originalArtifactVersion parameter

* re-generate steps

* adjust golden files for generator changes
2020-05-28 10:05:22 +02:00
Daniel Kurzynski
3992f17b32
Fix injection of download cache parameters (#1605)
- NPMRegistry was always an empty string
- MTA did not use npm registry
2020-05-27 18:20:10 +02:00
Oliver Nocon
5e27d26a7c
whitesourceExecuteScan: add Docker image scanning (#1556)
* whitesourceExecuteScan: add Docker image scanning

* add test

* Update whitesourceExecuteScan.groovy

* Update WhitesourceConfigurationHelper.groovy
2020-05-27 16:27:36 +02:00
Oliver Nocon
d5d510719d
piperExecuteBin - prevent non-speaking exit code 1 error (#1584)
* piperExecuteBin - prevent non-speaking exit code 1 error

Make sure that error during context resolution gets more context.

* properly provide golang errors

* improve error message, when no details are available

* Add error category

* Update getConfig.go
2020-05-26 07:58:03 +02:00
Sven Merk
af2a01c064
Fortify implementation in golang (#1428) 2020-05-25 19:48:59 +02:00
Alexander Link
c855ae285c
Fix whitesource docu link (#1565)
The document moved to another location. The currently linked document will be deleted on June 17th.

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-05-20 12:10:22 +02:00
Oliver Nocon
09b2ddbafa
piperExecuteBin: allow easier re-use (#1566)
* piperExecuteBin: allow easier re-use
* make binary path configurable in groovy step using `piperExecuteBin`
2020-05-19 16:49:21 +02:00
Marcus Holl
f47f2e6e90
Use mtaBuild step from go (#1536)
Co-authored-by: Your Name <kevin.hudemann@sap.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-05-19 08:51:18 +02:00
Chris Bo
abdc3f736b
Introducing new step 'gctsDeployCommit' (#1476)
* added new step gctsDeployCommit

* suggested PR fixes applied

* fixed test

* Remove unused imports

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* added URL encoding for 'request' parameter

* regenerate after change

* minor changes

* renamed step to 'gctsDeploy'

* changed name

* remove space

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-05-18 21:39:35 +02:00
lndrschlz
b9a357bab5
jenkinsMaterialzeLog: use log without binary annotations (#1542)
* jenkinsMaterialzeLog: use log without binary annotations

* test fixed
2020-05-18 21:19:30 +02:00
Florian Hoffmann
18f30c8068
Improve approval logging (#1513) 2020-05-18 12:21:05 +02:00
Stephan Aßmus
7d3f201609
Ignore invalid entries in custom defaults (#1558)
Extend tests, ignore invalid custom defaults entries
2020-05-18 10:59:02 +02:00
Stephan Aßmus
22fe087598
Fix name of credentials ID param (#1552) 2020-05-14 19:17:47 +02:00
Christopher Fenner
0ce6473a98
fix(spinnaker): fix MissingPropertyException (#1543)
* add test case

* fix issue
2020-05-14 17:45:02 +02:00
Christopher Fenner
27c6320474
feat(sonar): write flag for sonar execution to influx (#1534)
* write flag for sonar execution to influx

* add missing step metadata file

* first attempt to read influx from disk

* add missing import

* correct glob pattern

* use file path

* correct type names

* cleanup

* fix code climate issue

* fix typo

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>

* add test case

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-05-14 13:46:40 +02:00
Stephan Aßmus
5ab4dedcb2
Optionally ignore custom defaults (#1538)
* Add parameter "--ignoreCustomDefaults"
* Pass to piper customDefaults from config also via --defaultConfig
... and add "--ignoreCustomDefaults".
* Log output when ignoring customDefaults

Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-05-14 10:50:58 +02:00
dominiklendle
ac732b3065
Add abapEnvironmentRunATCCheck step (#1454)
* Minor changes

* Changed groovy file

* Changed generated file

* Changed yaml with container config

* Changed groovy config

* minor changes

* minor changes

* Changed yaml with aliases

* minor changes

* minor changes

* minor changes

* minor changes

* minor changes

* minor changes

* minor changes

* minor changes

* minor changes

* minor changes

* Changed yaml aliases

* Adapted naming conventions

* Removed error code at the end

* Adapted configuration

* Minor changes

* Minor changes

* Minor changes

* Removed spaces

* Removed docker-related config from groovy file

* Minor changes

* Minor changes

* Removed container config

* Corrected testing function name

* Deleted unnecessary parts

* Changed service deletion message

* Changed service deletion message

* Logging out before throwing error service deletion step fails

* Minor changes

* Minor changes

* Minor changes

* Delete .DS_Store

* Delete .DS_Store

* Delete .DS_Store

* Delete .DS_Store

* Minor changes

* Minor changes

* Minor changes

* Added newline at end of file

* Added newline at end of file

* Changes for Pull request optimization

* added documentaion

* Adapted documentation

* Adapted documentation

* Adapted documentation

* Adapted documentation

* Adapted documentation

* Added CFDeleteServiceKeys

* Added ServiceKey deletion tests

* added cfServiceKeys flag explanation to documentation

* removed trailing spaces from documentation

* resolving conflicts

* Changed deletion message an variable naming

* Changed tests

* Changed tests

* Changed tests

* Changed tests

* Changed CloudFoundryDeleteServiceOptions to options

* Changed CloudFoundryDeleteServiceOptions to options

* Minor changes

* Minor changes

* Changed variable naming

* Changed error handling

* Changed error handling and logging

* Changed documentation

* Simplified code

* Fixed CodeClimate issues

* Changed from returning err to nil where no errur returned needed

* Add cloudFoundryCreateServiceKey Go Step

* Changed Groovy File

* Changed aliases

* Removed unneccessary parts

* Minor changes

* Minor changes

* Adapted documentation

* Adapted tests

* Adapted Groovy File

* Changed Groovy file

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Removed Groovy Tests for cfCreateServiceKey

* Minor changes

* Added ATC Check YAML

* Added ATC Check generated files

* Added test class

* Added abapEnvironmentRunATCCheck

* Minor changes

* Minor changes

* Changed groovy

* Minor changes

* Changed groovy

* Changed groovy

* Minor changes

* Adapted Groovy imports

* Adapted Groovy imports

* Adapted Groovy imports

* Adapted Groovy

* Getting ATC results

* Changed error message

* changed groovy

* removed trailing spaces

* Added login check

* Minor changes

* Added step to whitelistScriptReference

* Added ATC error message handling

* Added groovy file

* Added step to groovy tests

* corrected metadata file

* Debugging

* Debugging

* Added yaml config parameter for ATC run

* Adapted file location of ATC run config to jenkins specific location

* Implementing universal pipeline logic for finding yaml config regardless of pipeline

* Changed error handling for reading config yaml file

* Changed atcrunconfig alias

* minor changes

* Minor changes

* Minor changes

* Changed back to dynamic file reading

* Minor changes

* filepath changes

* Removing CF Login

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Removed whitespaces

* Added CF functions unit tests

* Added invalid parameter handling

* Removed package and SC flag

* Minor changes

* Changed tests

* Changed tests

* Changed tests

* Minor changes

* Changed tests

* removed unnecessary logout

* Added documentation

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Changed docu

* Removed trailing spaces

* Added newline at end of file

* code climate fixes

* code climate fixes

* code climate fixes

* Minor changes

* Minor changes

* Minor changes

* Changed tests

* Test changes

* Splitted Cloud Foundry functions into two classes

* Removed two steps from whtielistScriptReference

* removed atcrunConfig alias

* issue fixes

* Changed docu

* Changed docu

* Changed docu

* Removed trailing spaced from docu

* Changed docu

* Go generator run

* Issue fixes

* Remove unnecessary imports

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* Update whitelistScript

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* Adding piperutils for writing xml file

* Persisting ATC Results with piperutils

* Set failonMissingReports to true

* Refactoring for CodeClimate

* Changed result file name

* Changed credentials aliases

* changing secret name

* Removing trailing spaces

* Added secret name and alias to docu

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-05-13 14:51:48 +02:00
Kevin Hudemann
d7985dd1b5
Enable use of customDefaults from Project Config also in Groovy (#1521)
This change enables the setupCommonPipelineEnvironment step to handle
custom default configurations defined in customDefaults parameter of the
project configuration.

Previously, only the getConfig Go step was able to incorporate custom
default configurations.

Update documentation on custom defaults and sharing between projects.

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-05-12 13:50:18 +02:00
Christopher Fenner
04da130dbd
fix(sonar): handle piper-bin error result (#1524) 2020-05-11 12:46:16 +02:00
Marcus Holl
803071f143
fail in case git add or git commit fails during artifactSetVersion (#1491)
* fail in case git add or git commit fails during artifactSetVersion

* check if there is a git config on os level

* better error message in case no user name/mail are configured


Co-authored-by: Srinikitha Kondreddy <srinikitha.kondreddy@sap.com>

Co-authored-by: Srinikitha Kondreddy <srinikitha.kondreddy@sap.com>
2020-05-11 10:05:18 +02:00
Florian Wilhelm
eaf5479e9c
Fix maven parameter handling (#1493)
Avoid maven error `Unknown lifecycle phase \"-\"` when the value of a define contains `-`.

Don't split and trim maven arguments. Expect they come in as a list, keep them as list.

This is a breaking change compared to the old Groovy implementation which relied on using a shell for calling maven.

As an example, consider this diff:

```diff
-        goals: 'org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate',
-        defines: "-Dexpression=$pomPathExpression -DforceStdout -q",
+        goals: ['org.apache.maven.plugins:maven-help-plugin:3.1.0:evaluate'],
+        defines: ["-Dexpression=$pomPathExpression", "-DforceStdout", "-q"],
```
2020-05-06 17:43:32 +02:00
Christopher Fenner
e4f827118b
refactor(protecode): handle DOCKER_CONFIG in go (#1502)
* handle DOCKER_CONFIG in go

* cleanup

* always use parent dir

* take care of errors
2020-05-06 16:07:10 +02:00
Daniel Kurzynski
89ef622c2b
Let users configure the sap npm registry for mta builds via config.yml (#1499) 2020-05-06 13:05:54 +02:00
Marcus Holl
2c7c165e62
Malware scan metadata update (#1483) 2020-05-06 08:52:26 +02:00
Christopher Fenner
669dc91688
fix: prevent script to json conversion (#1495)
* prevent script to json conversion

* use piperExecuteBin

* correct imports

* fix trailing spaces
2020-05-05 15:21:59 +02:00
Christopher Fenner
d75dced2a6
test: activate common test cases using piperExecuteBin (#1501) 2020-05-05 14:31:12 +02:00
Christopher Fenner
e153e8f798
fix(protecode): provide correct username value (#1500)
leftover of #1426
2020-05-04 16:50:17 +02:00
Marcus Holl
30850aec2d
Add groovy wrapper for malwarescanning (#1403) 2020-04-30 11:14:14 +02:00
Oliver Nocon
3f1a9d004a
Allow proper usage of resilience feature in golang steps (#1487)
* Allow proper usage of resilience feature in golang steps
2020-04-30 10:39:27 +02:00
Oliver Nocon
e8c6baca42
Golang errors: improve error message in groovy part (#1482)
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-04-29 11:26:29 +02:00
Christopher Fenner
aab3c5989f
fix(sonar): remove .sonar-scanner and .certificates folder after scan (#1481) 2020-04-29 11:11:23 +02:00
Daniel Kurzynski
6bebfbfced
Fix nexus upload to pass correct environment variable (#1480) 2020-04-28 21:09:19 +02:00
Oliver Nocon
43947e6ef5
Pass golang error details to Jenkins pipeline (#1443)
Do not exit with os.Exit(1) but using log.Entry().Fatal() instead
* Golang: forward error details
* extend groovy wrapper to provide proper error message
* create closure for error handling
2020-04-28 07:42:02 +02:00
Oliver Nocon
d27e946280
Update artifactPrepareVersion.groovy (#1470) 2020-04-27 17:20:56 +02:00
Kevin Hudemann
0be3225a3c
Enable the use of artifactPrepareVersion instead of artifactSetVersion (#1455)
This change enables the use of the artifactPrepareVersion go step instead
of the deprecated artifactSetVersion groovy implementation for the Cloud
SDK Pipeline. The groovy wrapper for the artifactPrepareVersion step now
enables the use of the download cache and minor issues are fixed.
2020-04-27 09:56:58 +02:00
Oliver Nocon
b9450702af
piperExecuteBin: fix reading environment (#1452)
* piperExecuteBin: fix reading environment
* update tests

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-04-24 22:41:34 +02:00
Florian Wilhelm
3f5b9cc555
Implement npmExecuteScripts step (#1422) 2020-04-24 18:29:30 +02:00
Chris Bo
fb4cfd84ec
Introducing new step: "gctsCreateRepository" (#1424)
With the step gctsCreateRepository it is possible to create a local gCTS repository on an ABAP server

Co-authored-by: Marcus Holl <marcus.holl@sap.com>
2020-04-24 15:31:41 +02:00
Daniel Kurzynski
974327d16e
Use mavenExecute from go (#1388)
Also establish mavenExecute() via new JenkinsMavenExecuteRule in Groovy Unit Tests.

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-04-24 10:41:49 +02:00
Hans Schulz
5c27a717c3
Make smoke test of blueGreen deployment optional (#1394)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-04-22 21:59:14 +02:00
Daniel Kurzynski
76d24e560e
Fix documentation generation for cloud foundry (#1420) 2020-04-22 11:50:30 +02:00
Oliver Nocon
067eb0ba6a
Improve error messages for test failures (#1417) 2020-04-17 11:59:51 +02:00
Daniel Kurzynski
1c247de9d0
Add option to always run stages in a pod (#1414) 2020-04-17 10:31:04 +02:00
Oliver Nocon
4061881b53
UIVeri5 & Newman: provide better error messages (#1410) 2020-04-16 09:14:39 +02:00
Oliver Nocon
bd0eed30ff
stageWrapper: new error handling (#1401)
* handlePipelineStepErrors: allow disabling for stages
* update error handling in stages
* move file loading into try catch
* Cleanup DebugReport before test

Apparantly, the same DebugReport instance is loaded
during all Unit Tests. Avoid left-overs from previous
tests.

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-04-15 14:02:41 +02:00
Daniel Kurzynski
b32214ee78
Inherit from Kubernetes pod template (#1361) 2020-04-08 19:54:06 +02:00
Christopher Fenner
3308243685
fix: add stash for pipeline custom defaults (#1381) 2020-04-08 16:00:02 +02:00
Christopher Fenner
c190deee44
refactor(sonar): switch to Sonar scan in GO (#1320)
* use sonar go in groovy

* use SONAR_TOKEN

* only use owner/repo if both are set

* trim version to major version digit

* fix code climate issues

* remove Sonar defaults

* use sonar go step

* use SONAR_TOKEN

* use certs from parameters

* use docker workspace & options

* add instance parameter

* implement branchName

* implement branchName

* remove duplicate default

* update docs

* fix TODOs

* remove merge mess

* fix code climate issue

* address comments

* respect custom defaults and custom config file name

* fix typo

* remove obsolete test cases

* disable CommonStepChecks

* check step config instead of context config

* remove TODOs

* respect jenkins PR envvars

* use value from stepConfig

* Update vars/sonarExecuteScan.groovy

* rename options to config

* correct type for options

* add test cases

* log sonar.options in debug message

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-04-08 12:55:46 +02:00
chrisfries
5c1be118a3
fix: fixing issues with cf docker deployment (#1289) 2020-04-07 09:10:38 +02:00
Stephan Aßmus
ded6152b56
nexusUpload: Remove config processing from Groovy layer (#1364) 2020-04-04 11:44:02 +02:00
Oliver Nocon
999197b919
Add step to prepare the version for an artifact (#1343) 2020-04-03 16:34:40 +02:00
dominiklendle
00b80f0247
Removed report from piperExecuteBin (#1362)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-04-03 13:23:44 +02:00
HenrikB
0a29ff2c57
feat(sonar): report to custom branch name (#1341)
* feat(sonar): report to custom branch name

* fix typo

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-04-01 12:38:36 +02:00
Dominik Lendle
5fba815fe8
Transformation of cfCreateServiceKey to Golang (#1253) 2020-04-01 11:45:31 +02:00
Marcus Holl
04b5805410
Provide verbose flag via signature (#1304) 2020-04-01 10:00:36 +02:00
Stephan Aßmus
0b8b6f2b0c
Migrate stage artifact deployment from Cloud SDK Pipeline-Lib (#1324)
Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
Co-authored-by: Florian Geckeler <f.geckeler@sap.com>
2020-03-31 15:16:18 +02:00
Stephan Aßmus
0c6dabbd1e
Pass custom config and default configs also to getConfig (#1346)
Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-03-31 13:10:02 +02:00
Srinikitha Kondreddy
27286deb59
Add env variable to control execution of extensions in project repo. (#1326)
* Introduce new env variable to restrict extension files exec

* Add docu on restricting exec of extension files

* Update documentation/docs/extensibility.md

Co-Authored-By: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* Rename parameter

* Update documentation/docs/extensibility.md

Co-Authored-By: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* Add test for restricting extensions exec

* Fix additional tests

* extract condition

* use binding for env vars

* mock env binding

* Update piperStageWrapper.groovy

🙄

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
Co-authored-by: Marcus Holl <marcus.holl@sap.com>
2020-03-31 12:51:34 +02:00
Florian Geckeler
bd92804745
Add static code checks stage (#1308)
* Add static code checks stage
* Rework go step to accept thresholds for the checks and fail maven build if above the thresholds
2020-03-30 15:59:59 +02:00
Stephan Aßmus
03096b5d05
Pass custom default-config files and custom project config from Jenkins side to piper (#1333) 2020-03-30 14:31:24 +02:00
Florian Wilhelm
0c3493f9ad
Only add already tracked files to git (#1312) 2020-03-26 09:41:03 +01:00
Daniel Kurzynski
9ed39cfa3f
Maven build groovy (#1303) 2020-03-23 09:58:54 +01:00
Stephan Aßmus
20b65d5a2e
Implement nexusUpload command and tests (#1255)
Artifacts to upload are assembled for MTA projects and Maven projects with optional application sub-module. Then maven deploy:deploy-file is used as backend to upload bundles of artifacts plus sub-artifacts.

Co-authored-by: Florian Wilhelm <florian.wilhelm02@sap.com>
2020-03-20 18:20:52 +01:00
Daniel Kurzynski
6bd259e5d4
Fix sidecar env vars (#1292) 2020-03-20 11:36:16 +01:00
Kaj-Sören Mossdorf
5616ac2ab0
Parse values to json with groovy methods (#1266)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-03-19 14:46:56 +01:00
Christopher Fenner
6feb0cf9e9
fix(telemetry): disable telemetry in init stage (#1272)
* disable telemetry in init stage

* Apply suggestions from code review

* Update vars/piperStageWrapper.groovy
2020-03-19 10:49:28 +01:00
Oliver Nocon
289bb58e66
Fix issue with pipeline resilience (#1288)
closes #1286 which was introduced with #1146
2020-03-18 08:32:28 +01:00
Marcus Holl
25553bc3b9
nonCPS annotation when settings the git urls in initStage (#1273)
* nonCPS

* Reduce scope of @NonCPS annotation
2020-03-17 13:23:55 +01:00
Oliver Nocon
a49d8947c0
Streamline calling piper go binary (#1254) 2020-03-17 09:19:09 +01:00
Christopher Fenner
a970507619
refactor(sonar): provide trust store via JVM parameter (#1270)
* provide trust store via JVM parameter

* adjust test cases

* Update vars/sonarExecuteScan.groovy

* Update vars/sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy
2020-03-16 10:34:07 +01:00
Marcus Holl
db8cb2bf62
Add missing config for tmpUpload (#1277) 2020-03-16 09:34:59 +01:00
Florian Geckeler
9a28e12d5d
Add groovy wrapper for mavenExecuteStaticCodeChecks and rename go step 2020-03-12 15:45:57 +01:00
Maximilian Lenkeit
2021c8215a
Expose seleniumHubCredentialsId to higher-level Jenkins steps (#1265)
* expose seleniumHubCredentialsId in karmaExecuteTests

* expose seleniumHubCredentialsId in uiVeri5ExecuteTests

* refer to documentation of seleniumExecuteTests
2020-03-11 13:35:49 +01:00
Sven Merk
c645087517
NotSerializableException next part (#1262)
* Update dockerExecute.groovy

* Update dockerExecute.groovy

* Update dockerExecute.groovy
2020-03-11 10:05:03 +01:00
Kaj-Sören Mossdorf
4aeb9517a6
Fix writeToDisk in case value is instance of List (#1249)
* Added documentation of stepParameters being a Groovy map, requiring at least the script reference

* Fix writeToDisk in case value is instance of List

* Fix writeToDisk in case value is instance of List

* Added comments

* Keep String as is, serialize everything else

* Fixed import

Co-authored-by: Sven Merk <33895725+nevskrem@users.noreply.github.com>
2020-03-11 08:18:27 +01:00
Sven Merk
6edaaecf15
Support workspace paths containing whitespaces (#1241)
* Support workspace paths containing whitespaces

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy

* Switch to export

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy

* Update sonarExecuteScan.groovy
2020-03-09 15:40:59 +01:00
Sven Merk
b43f331fad
Avoid NotSerializableException #3 (#1252) 2020-03-06 14:05:14 +01:00
Oliver Nocon
dd5cfcc1aa
Added documentation of stepParameters being a Groovy map, requiring at least the script reference (#1248)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-03-05 17:16:53 +01:00
Sven Merk
d29c249e35
Avoid using Iterators to get around NotSerializableException (#1242)
* Avoid using Iterators to get around NotSerializableException

* Avoid using Iterators to get around NotSerializableException
2020-03-05 15:48:05 +01:00
Oliver Feldmann
5eb8edd3d9
Fix tip in documentation (#1196)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-03-04 17:01:49 +01:00
Christopher Fenner
2b2b57305e
fix: handle NPE in seleniumExecuteTests (#1239)
* handle NPE

* fix Code Climate issue

* add test case

Co-Authored-By: Maximilian Lenkeit <mlenkeit@users.noreply.github.com>

* correct test case

Co-authored-by: Maximilian Lenkeit <mlenkeit@users.noreply.github.com>
2020-03-03 17:09:09 +01:00
Sven Merk
4c97231ff9
Avoid using Iterators to get around NotSerializableException (#1220) 2020-02-25 12:25:26 +01:00
René Kschamer
d754a669b2
Add Docker deploy support to cloudFoundryDeploy (#977)
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-02-25 10:20:15 +01:00
Maximilian Lenkeit
fa4938e590
seleniumExecuteTests: expose only required metadata (#1179) 2020-02-19 11:21:11 +01:00
Oliver Nocon
fd76f721ea
Streamline implementation githubPublishRelease (#1191) 2020-02-19 09:05:53 +01:00
Maximilian Lenkeit
973a47d3b2
Add support for Selenium Hub credentials (#1171)
* add parameter for selenium hub credentials

* align selenium hub parameter names

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-02-17 14:34:19 +01:00
Maximilian Lenkeit
6271784e21
log node.js and npm version in related steps (#1182) 2020-02-17 13:24:56 +01:00
Christopher Fenner
87f0cb687a
refactor(deployment): ease debugging in blue ocean (#1173)
* Update cloudFoundryDeploy.groovy

fixes #857

* Update cloudFoundryDeploy.groovy

* Update neoDeploy.groovy

* fix typo

* Update cloudFoundryDeploy.groovy

* Update cloudFoundryDeploy.groovy

* adjust test cases
2020-02-14 13:41:36 +01:00
FrittenToni
0d82a39098
Ignore email addresses containing string "noreply" (#1178)
* avoid sending mails to addresses which contain the string noreply

* enrich test to ensure that mails containing the string noreply never end up in recipient list

* Update MailSendNotificationTest.groovy
2020-02-13 15:12:48 +01:00
Maximilian Lenkeit
00b094d74b
seleniumExecuteTests: expose container metadata via env vars (#1170)
* inject container metadata via env vars to selenium

* set step-specific env var for uiVeri55ExecuteTests

* Revert "set step-specific env var for uiVeri55ExecuteTests"

This reverts commit 8deb39ac5b.

* remove env vars that indicate piper step

* remove env var to indicate execution through selenium step

Co-Authored-By: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* remove defaulting of docker env vars

Co-Authored-By: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

* Update vars/karmaExecuteTests.groovy

Co-Authored-By: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-02-13 09:09:08 +01:00
dominiklendle
2007a94174
Add step cloudFoundryDeleteService (#1097) 2020-02-10 14:53:12 +01:00
Stephan Aßmus
9658f3b480
writeFile() cannot be passed a Map (#1163)
* writeFile() cannot be passed a Map

I've changed the return type of DebugReport.generateReport() from
String to Map in order to get the generated file name as part of the
return value instead of getting it from a field of DebugReport. The
UnitTest checks whether writeFile() creates the debug_report file
successfully and whether it has the expected contents. The effect
of passing the Map instead of map.contents to writeFile() should
have been an unnecessary wrapping via Map.toString() as in the test,
but in the execution context of Jenkins, this throws an
IllegalArgumentException: Could not instantiate {... and then the
results of map.toString().

* Improve JenkinsWriteFileRule compatibility

Calling m.text.toString() is wrong, since the type stored at m.text
already needs to be a String (or GString). Expecting valid parameters
here makes sure problems are detected by tests already. (All tests
pass as before.)
2020-02-10 12:25:33 +01:00
Stephan Aßmus
71766be2f5
Pass stageName to dockerExecuteOnKubernetes (#1162)
This fixes configuring sidecars for the given stage when Jenkins runs
on Kubernetes and the surounding stage has passed a stageName via parameters which is different from env.STAGE_NAME.
2020-02-08 12:57:55 +01:00
Daniel Kurzynski
eb82851502
Disable or fail on blue green deployment if not supported by manifest structure (#1160) 2020-02-07 18:46:03 +01:00
Stephan Aßmus
c628d208c7
Implement archiving the debug report as step (#1152)
* Implement archiving the debug report as step
2020-02-07 16:30:08 +01:00
redehnroV
2ebf2010b7
Protecode as GoLang (#1119)
* Protecode as go implementation

Co-authored-by: Sven Merk <33895725+nevskrem@users.noreply.github.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-02-06 16:16:34 +01:00
Oliver Nocon
61da9faf98
Support InfluxDB plugin in version 2.0 (#1130)
* Support InfluxDB plugin in version 2.0
closes #932
superseeds #933
2020-02-06 11:27:31 +01:00
Sven Merk
59e9d897bf
feat(hadolint): enable correct handling of multiple scan results (#1145)
* Add missing parameter

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* fix code climate issues

* Update default_pipeline_environment.yml

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

* Update hadolintExecute.groovy

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-02-04 16:36:09 +01:00
Stephan Aßmus
164c12b9f0 Executing extensions in handlePipelineStepErrors
The code of extensions was not executed within the try-catch-block of
handlePipelineStepErrors. The main benefit of this change is better
logging and re-using the 'unstable' feature also for
extended/overwritten steps.
2020-02-04 12:33:13 +01:00
Daniel Mieg
6f0bde154b
Go implementation for abapEnvironmentPullGitRepo() (#1107) 2020-02-04 11:43:27 +01:00
Christopher Fenner
a79fd95fd8
fix: correct jenkinsKubernetes parameter exposure & docs (#721)
* remove jenkinsKubernetes parameter
2020-02-04 08:02:38 +01:00