Oliver Nocon
023f35c0a8
dockerExecuteOnKubernetes - add stashBack configuration ( #808 )
...
* dockerExecuteOnKubernetes - add stashBack configuration
For certain cases it is valuable to only bring back some of the files from an execution inside a container back to the workspace.
This is now added.
Closes #753
* refactor according to PR review
2019-08-14 16:44:12 +02:00
Christopher Fenner
f3f4c741be
sonarExecuteScan: add custom certificate support ( #819 )
...
* feat(sonar): load TLS certificates
* allow verbose property
* handle whitespaces
* cleanup
* disable default verbosity on wget
* correct test file name
* add test case for custom certificates
* import StandardCharsets
* change cleanup
* correct pull-request provider name
* correct pull-request provider name
* correct pull-request provider name
2019-08-11 22:42:34 +02:00
Marcus Holl
f0a3dd9a39
Remove inappropriate package statement and inappr. shebang ( #823 )
2019-08-08 23:50:25 +02:00
Marcus Holl
9962060254
ConfigurationLoader, ConfigurationHelper working without script reference
2019-08-08 16:14:29 +02:00
Marcus Holl
063a1dc3fc
Back commonPipelineEnvironment step by shared class
...
Each pipeline step comes with its own instance of a commonPipelineEnvironment.
Properties stored on one instance was not shared with the other instances.
Now we strip down the commonPipelineEnvironment step and forward basically
everything to a shared singleton instance.
With that approach all instances of commonPipelineEnvironment shares the
same data and can now be really used for information exchange between the steps.
Before that change only the commonPipelineEnvironment instance associated with
the pipeline script itself could be used for that purpose.
2019-08-08 15:19:25 +02:00
Marcus Holl
77a8c54084
Remove stdout from unit test ( #787 )
...
in the majority of the cases there is nobody for reading stdout.
2019-08-06 14:21:57 +02:00
Marcus Holl
0c90da6638
Simplify code: failExecution can be replaced by closure raising exception ( #795 )
2019-08-06 13:12:59 +02:00
Marcus Holl
e954e3b629
unified behaviour for shell call rule ( #794 )
...
* Ensure closure gets called when neither returnStdout nor returnStatus are set
In this case we do not have a return value, but in case we execute a closure we should execute the closure.
With that it is possible to raise an exception from the closure.
* [refactoring] unify usage of unify method call
* Remove dead code.
Coding after uncondition throw exception statement does not get executed.
* Ensure script rule behaves the same whan called with string and with map.
2019-08-02 17:05:49 +02:00
Oliver Feldmann
af5c16ef46
setupCommonPipelineEnvironment: support yaml config file ending ( #811 )
...
* Allow for yaml file ending
* Format code
2019-07-31 12:22:26 +02:00
Oliver Nocon
0c3e5f1ea9
use new unstable step to better visualize pipeline errors ( #804 )
...
With https://jenkins.io/blog/2019/07/05/jenkins-pipeline-stage-result-visualization-improvements/ it has been made possible to allow for a better visualization in case certain pipeline stages are 'UNSTABLE'
This is about using the new feature if available with a fall-back to old behavior.
2019-07-26 17:40:22 +02:00
Oliver Nocon
153dbf2a7f
githubPublishRelease - ensure proper JSON encoding ( #807 )
...
So far some special characters have not been properly encoded when creating a release.
This is addressed by using a new JsonUtils method now.
2019-07-26 14:03:20 +02:00
Roland Stengel
db8f9d0f07
harmonize docker configuration properties
...
fixes
2019-07-25 12:12:34 +02:00
Roland Stengel
01ce797245
harmonize docker configuration properties
...
support the configuration of the docker arguments
dockerEnvVars
dockerOptions
dockerWorkspace
for all steps.
2019-07-25 11:57:21 +02:00
Sven Merk
b1b480a7e1
Merge branch 'master' into whitesourceExecuteScan
2019-07-19 14:28:26 +02:00
tobiaslendle
cb245b1ce2
TMS integration ( #782 )
2019-07-18 15:06:11 +02:00
Christopher Fenner
5bf7cda940
add new step piperPublishNotifications ( #652 )
...
* add new step for notification publication
* add test cases
* add helper method
* correct import
* Update pom.xml
* add step to post section
* add step piperPublishNotifications
* move step to end of pipeline to gather all findings
* use handlePipelineStepErrors step
* use commonPipelineEnvironment
* correct reporting
* add configuration
* fix typos
* fix rule setup
* remove test scope
* add method to fetch full build log
* add methods for warnings-ng parser creation
* remove warnings plugin coding
* add default parser settings
* change parameter handling for parser creation
* adapt step
* fix parser creation
* use ParserConfig.contains
* use correct parameter name
* correct parser regex
* change issue creation
* use classloader
* fix typo
* Revert "fix typo"
This reverts commit 446a201ae4
.
* Revert "use classloader"
This reverts commit a896487032
.
* rename step to piperPublishWarnings
* extract recordIssuesSettings to defaults
* make addWarningsNGParser non-static
* remove node
* adjust test case
* add docs
* rename log file
* fix tests
* fix typos
* rename parameter
* add import for IOUtils
* check plugin activation
* add comment for class loader usage
2019-07-18 12:09:54 +02:00
Marcus Holl
e50aa9d37a
Merge remote-tracking branch 'github/master' into HEAD
2019-07-18 10:21:25 +02:00
Sven Merk
a5170bb878
Merge branch 'master' into whitesourceExecuteScan
2019-07-18 09:50:38 +02:00
Marcus Holl
2eeb5e05d4
Merge remote-tracking branch 'github/master' into HEAD
2019-07-18 09:44:59 +02:00
Oliver Nocon
be33eccbec
Take proper jnlp image as default for Kubernetes execution ( #759 )
...
* Take proper jnlp image as default for Kubernetes execution
Following changes are contained:
* removal of custom jnlp image as default
* allow customization of jnlp image via system environment
fixes #757
* add documentation
2019-07-17 12:01:24 +02:00
Sven Merk
7fbf7ffdf1
Merge branch 'master' into whitesourceExecuteScan
2019-07-17 10:56:47 +02:00
Oliver Nocon
31b9874eff
githubPublishRelease - properly handle situation where no release exists yet ( #792 )
...
correct error handling to properly take care of non-existing initial release.
2019-07-16 20:31:46 +02:00
Marcus Holl
30c632f29a
rename debug to verbose et al.
2019-07-16 16:01:43 +02:00
Marcus Holl
08312024c0
more tests
2019-07-16 15:33:57 +02:00
Marcus Holl
37d95f41d9
More tests
2019-07-16 14:52:45 +02:00
Marcus Holl
daf5d3340e
more tests
2019-07-12 17:01:33 +02:00
Sven Merk
2d84095b2f
Update WhitesourceExecuteScanTest.groovy
2019-07-11 11:33:34 +02:00
Sven Merk
a945823075
Merge branch 'master' into whitesourceExecuteScan
2019-07-11 10:56:47 +02:00
Andre Pany
0e990446fc
whitesourceExecuteScan: Add scanType dub
2019-07-11 06:17:30 +02:00
Sven Merk
6d94fb652e
Adapt test
2019-07-09 12:16:41 +02:00
Oliver Nocon
225cf2485b
Docker Pipeline - fixes and small adoptions ( #779 )
...
* buildExecute: Docker case - minor fixes
* properly care for empty `containerBuildOptions`
* verbose output wrt stashing
* add stage ordinals
* fix wrong script reference
* fix null reference
* adapt stage defaults and allow bats tests
* propagate github org and repo
* add test for bats
2019-07-05 16:32:24 +02:00
andre2007
44f745d327
Rename dlang to dub ( #762 )
2019-07-03 11:27:07 +02:00
Oliver Nocon
9e539e68ee
Piper pipeline - enhance stages ( #755 )
...
* fill PRVoting stage with content
* add prVoting stage incl. tests
* add Build stage incl. Tests
* add docs pages
* add additional unit test stage
* add acceptance stage and additional documentation ...
* add release stage content
* add promote stage
* add Security stage, fix defaults for Promote stage
* fix issue in doc generation
2019-07-03 10:13:26 +02:00
Oliver Nocon
5bb6d59753
Add step buildExecute ( #527 )
...
This step should serve as generic entry point in pipelines for building artifacts.
Build principle: build once.
Purpose of the step:
- build using a defined build technology
- store build result for future use in testing etc.
2019-07-02 13:00:36 +02:00
Oliver Nocon
d84e81f88e
merge duplicate test classes ( #760 )
2019-06-28 09:00:05 +02:00
Marcus Holl
5c3307d71b
Add hasSnippet
2019-06-27 12:20:59 +02:00
Marcus Holl
f6f1e0df5a
fileExists also with map
2019-06-27 11:12:53 +02:00
Oliver Nocon
3e46254701
dockerExecuteOnKubernetes - hide sensitive information ( #733 )
...
* dockerExecuteOnKubernetes - hide yaml by default
* hide step parameters to not leak sensitive parameter values into the log
* add more details to log output
2019-06-26 08:38:47 +02:00
Marcus Holl
ea5a3ed5ce
Merge remote-tracking branch 'github/master' into HEAD
2019-06-25 08:49:30 +02:00
Christopher Fenner
93e1796455
karmaExecuteTests: fix multi module execution ( #765 )
...
* add test case for multi module execution
* fix multi module issue
2019-06-24 15:29:32 +02:00
andre2007
36c029b344
Add dubExecute step ( #754 )
...
* Add dubExecute step
* Fix test
2019-06-19 16:52:18 +02:00
Oliver Nocon
79894bb36f
Fix docker versioning with registry port ( #686 )
...
Fix issue when retrieving version via tag in `FROM` section.
We also need to consider that the registry may contain a port.
* Update DockerArtifactVersioning.groovy
* add error message for missing image tag in FROM line
2019-06-19 13:00:56 +02:00
Oliver Nocon
d66607c31a
dockerExecuteOnKubernetes - support nodeSelector ( #747 )
...
support nodeSelector to run on dedicated nodes inside the Kubernetes cluster if required.
2019-06-19 12:26:16 +02:00
Thorsten Duda
13b1611a96
Fix review comment
2019-06-13 14:06:57 +02:00
Thorsten Duda
2257762c97
Fix tests
2019-06-13 13:51:57 +02:00
Oliver Nocon
e7cbf02b8e
dockerExecuteOnKubernetes - revert #739 ( #745 )
...
stashing .git directory had negative side-effects.
Solution would be to stash `.git` folder and unstash in `dockerExecuteOnKubernetes` only if required for a dedicated scenario.
2019-06-06 17:22:25 +02:00
Oliver Nocon
09086518e3
fix tests for dockerExecuteOnKubernetes ( #741 )
...
depending on the execution order tests may fail.
This solves this issue
2019-06-05 14:00:04 +02:00
Oliver Nocon
121b23fdaa
dockerExecuteOnKubernetes - stash also .git folder ( #739 )
...
Make sure that complete workspace is available in Kubernetes Pod.
So far e.g. git repository information were missing.
2019-06-05 11:24:32 +02:00
Sven Merk
111080cbfe
Add new step for Dockerfile linting ( #723 )
...
* Add new step for Dockerfile linting
* Add documentation template file
* Remove newlines
* Remove internal URL
* Rephrase comment
* Ammend stash
* Fix test
* move dockerImage to general
* use explicit curl options
* small changes
* small changes
* skip GIT blame
* First comments
* Also add remark to URL parameter
* Second set of comments
* Fix return code handling
* Switch type to set
* Revert unrelated changes
* Avoid modification of config
* add quality gate defaults
* Update hadolintExecute.groovy
* fix code climate issue
2019-06-04 08:01:43 +02:00
Marcus Holl
45a2bfc4f7
shift coding for preparing defaultValueCache into that class
...
rather than having it in a pipeline step.
With that we avoid going back from a class in the src folder into
a pipeline step (vars).
2019-05-31 14:26:25 +02:00
Oliver Nocon
f171f88b13
whiteSourceExecuteScan - allow passing projects via cpe ( #734 )
2019-05-29 13:22:16 +02:00
Marcus Holl
56b651dbe9
Merge remote-tracking branch 'github/master' into HEAD
2019-05-24 14:26:07 +02:00
Marcus Holl
c053dbca17
Add test null provided via signatur for extensions (also inside collection)
2019-05-24 13:55:29 +02:00
Alejandra Ferreiro Vidal
c21a4a6a3e
remove semikolons
2019-05-23 14:28:32 +02:00
Alejandra Ferreiro Vidal
79b79457f4
remove !#groovy header
2019-05-23 10:37:28 +02:00
Marcus Holl
4b61f362d2
Removing syntactically not needed commas which helps keeping diff smaller
2019-05-23 09:23:36 +02:00
Marcus Holl
ed155ece63
rename mtaExtensionDescriptos to extensions
2019-05-23 09:20:10 +02:00
Oliver Nocon
dbf110504e
Templates - Add advanced confirm stage ( #720 )
...
* Templates - Confirm Stage
* include feedback: allow customizing of default message
* adapt docs
* add default message
2019-05-22 10:42:59 +02:00
Marcus Holl
f87349e0fe
Condence dupliate code in test (file exists closure)
2019-05-22 08:49:27 +02:00
Marcus Holl
f6b165052a
Remove not needed test setup wrt file exists check
2019-05-22 08:11:28 +02:00
Marcus Holl
9f7056b73f
Reuse getSteps from StepHelper in common step tests
2019-05-17 12:11:29 +02:00
Marcus Holl
f83935d248
Merge remote-tracking branch 'github/master' into HEAD
2019-05-17 12:05:34 +02:00
Christopher Fenner
3a3b15e9ba
Merge branch 'master' into pr/inlineRules
2019-05-16 11:35:22 +02:00
Marcus Holl
1a907a834d
Merge remote-tracking branch 'github/master' into HEAD
2019-05-16 09:13:51 +02:00
Marcus Holl
74af6bab5f
Add extensions to neoDeploy
...
Extensions can be provided via --extension --e to the neo deploy command
line for deploy-mta. This commits adds support for providing extension files.
2019-05-16 09:13:23 +02:00
Christopher Fenner
9db487d189
move method to MapUtils ( #709 )
...
* move method to MapUtils
* use MapUtils
* fix indent
* Update src/com/sap/piper/MapUtils.groovy
* Update MapUtils.groovy
* remove obsolete test case
* fix typo
2019-05-15 20:52:45 +02:00
Marcus Holl
abdfa7b201
[refactoring] Increase readabiliy: inline rules without references
2019-05-15 17:03:41 +02:00
Marcus Holl
f38729c5eb
Merge remote-tracking branch 'github/master' into HEAD
2019-05-15 14:23:38 +02:00
Marcus Holl
7a7fd3ebab
Provide a deep config copy from ConfigHelper.use()
...
The config map prepared by ConfigHelper is a mix from several configuration levels. The lowest config level
(DefaultValueCache) is shared between several ConfigHelper invocations. In case a Map or Collection which is
inherited from the DefaultValueCache level gets modified, this is also visible for all subsequent steps. This
causes trouble and situation which are hard to debug.
With this change here each invocation of ConfigHelper.use() provides a deep defensive copy. With that we can
ensure that there is no configuration update from one step to another.
2019-05-14 12:43:18 +02:00
Christopher Fenner
c8f9db71eb
add step for Sonar scan ( #183 )
...
* add new step sonarExecute
* simplify list
* add general credentials for SonarQube
* Update default_pipeline_environment.yml
* Update sonarExecute.groovy
* correct worker invocation
* switch step/stage config order
* add tests
* add webhook handling
* Update default_pipeline_environment.yml
* use withMandatoryProperty with condition
* Update ConfigurationHelper.groovy
* Update sonarExecute.groovy
* Update ConfigurationHelper.groovy
* rename step to sonarExecuteScan
* rename step to sonarExecuteScan
* rename step to sonarExecuteScan
* Update sonarExecuteScan.groovy
* change return type
* Update sonarExecuteScan.groovy
* stash
* update defaults
* update install path
* use quiet unzip
* use long option names
* optimize filename retrival
* rework PR voting
* fix path
* remove accitentially checked-in file
* add documentation, optimise coding
* correct test case
* add documentation
* remove option prefix
* rename config variable
* update docs
* update docs
* rename download url
* fix typo
* adjust test cases
* add test cases
* update docs
2019-05-13 12:29:07 +02:00
Christopher Fenner
8a55e25f72
add Slack notification to Init and Post stage ( #691 )
...
* add Slack notification to post stage
* add Slack notification to init stage
* add trigger condition for Slack notification
* fix whitespaces
* use capital stage name
* add tests for init stage
* remove unused import
* add tests for post stage
* minor changes
* fix typo
2019-05-10 06:47:44 +02:00
Marcus Holl
fb22711c2a
Merge remote-tracking branch 'github/master' into HEAD
2019-05-09 15:29:45 +02:00
Alejandra Ferreiro Vidal
7724469f58
add unit tests for withPropertyInValues
2019-05-09 13:35:36 +02:00
Alejandra Ferreiro Vidal
043c228115
fix wrong message
2019-05-09 13:35:36 +02:00
Florian Geckeler
79b55cc064
Enable configuration of npm registry for mtaBuild
2019-05-09 08:51:11 +02:00
Oliver Nocon
e20eb3c320
pipeline initialization - support nested keys ( #695 )
...
* pipeline initialization - support nested keys
support a nested structure for config keys for initialization conditions, like
```
Acceptance:
stepConditions:
cloudFoundryDeploy:
configKeys:
- 'cfSpace'
- 'cloudFoundry/space'
```
* optimize code
2019-05-08 12:04:47 +02:00
Oliver Nocon
a67f850fdb
add step for Synopsis Detect Scans ( #690 )
...
* add step for Synopsis Detect Scans
tool was formerly calles Blackduck Hub Detect.
Details about the tool can be found here: https://synopsys.atlassian.net/wiki/spaces/INTDOCS/pages/62423113/Synopsys+Detect
2019-05-08 11:36:01 +02:00
Sven Merk
94e72898b1
whitesourceExecuteScan: Fix suffix collision for MTA scenario ( #689 )
...
* Apply fix for stash name collision
* Adapt tests
2019-05-03 17:33:52 +02:00
Oliver Nocon
14efc51d24
whitesourceExecuteScan - fix stashing behavior for golang ( #688 )
...
* whitesourceExecuteScan - fix stashing behavior for golang
**changes:**
golang scan requires sources to be present. They are already part of the `checkmarx` stash which can be used here.
* fix tests
2019-05-03 16:21:36 +02:00
Oliver Nocon
6c5d9f2f61
Pipelines - extend init conditions ( #676 )
...
extends init condition with condition `configKeys`
This condition allows to specify a list of configuration keys which if any key is set will activate the respective step & stage
2019-05-02 22:09:15 +02:00
Oliver Nocon
700a6e2e4e
Add step kanikoExecute for Docker builds using Kaniko ( #684 )
...
* Add step kanikoExecute for Docker builds using Kaniko
* Update kanikoExecute.md
* address PR feedback
2019-05-02 17:29:11 +02:00
Christopher Fenner
e8f206b1a1
piperPipeline: add extensible post stage ( #661 )
...
* add post stage
* use post stage in template
* adjust test cases
* add docs skeleton
* add documentation
* Update piperPipelineStagePost.md
2019-05-02 12:26:28 +02:00
Alejandra Ferreiro Vidal
15cfed66a4
remove parameters not related to warPropertiesFile
2019-04-30 13:36:07 +02:00
Florian Wilhelm
49c704c9aa
Allow setting global maven config in MTA builder ( #667 )
2019-04-24 12:47:37 +02:00
Florian Wilhelm
ee42e66802
Honor maven user-settings file for mta build ( #663 )
...
Allow setting custom settings file for maven in mta build, which is for example required if a custom maven repo (i.e. company internal) needs to be used.
2019-04-17 10:44:55 +02:00
Christopher Fenner
eacec4279d
piperPipeline: handle build result correctly ( #660 )
...
* add new step buildSetResult
* set pipeline result in post stage
* exclude buildSetResult from commonStepTests
* extend pipeline test
* remove post stage reference
2019-04-15 14:18:08 +02:00
Alejandra Ferreiro Vidal
5448385985
add multicloud deploy step
2019-04-12 17:51:38 +02:00
Marcus Holl
71c0df4d5f
Merge remote-tracking branch 'github/master' into HEAD
2019-04-12 13:48:31 +02:00
Marcus Holl
fc93326805
Merge remote-tracking branch 'github/master' into HEAD
2019-04-12 13:13:31 +02:00
Marcus Holl
862729a703
Adjust test after merging early check for the deployable
...
In the meantime we check earlier if the deployable exists. Up to now the test used that late check. Now, as that
check happens earlier in the code we have to tune here. Now we assume a failure inside neo deploy instead.
2019-04-12 13:13:25 +02:00
Alejandra Ferreiro Vidal
f9db4245e9
cloudFoundryDeploy: generate docu
2019-04-12 13:08:05 +02:00
Marcus Holl
28fa30fc8f
Do not swallow original excpetion when we have trouble to cat the logs
2019-04-12 10:06:18 +02:00
Christopher Fenner
e67b9cff23
influxWriteData: hold data in dedicated object ( #624 )
...
* add InfluxData object
* add InfluxData rule
* use InfluxData
* include jenkins_custom_data into InfluxData object
* correct typo
* add missing import
* fix condition for influx reporting
* add test class
* Update influxWriteData.groovy
2019-04-11 11:39:41 +02:00
Christopher Fenner
e90ffa6bf5
commonPipelineEnvironment: add propertiesMap ( #526 )
...
* add customPropertiesMap
* migrate transportRequestId to customPropertiesMap
* migrate transportRequestId to customPropertiesMap
* fix typo
* rename map
* rename method due to name clash
2019-04-10 10:56:36 +02:00
Alejandra Ferreiro Vidal
86978becfc
remove utils.getMandatoryParameter()
2019-04-09 16:25:25 +02:00
Oliver Nocon
4d945c8557
handlePipelineStepErrors - allow step timeouts ( #644 )
...
* handlePipelineStepErrors - allow step timeouts
This adds another resilience option:
A timeout can be configured for steps in order to stop step execution, continue with the pipeline while setting build status to "UNSTABLE"
2019-04-05 11:16:34 +02:00
Sven Merk
bccec4259a
Fix scala test
2019-04-04 21:20:25 +02:00
Sven Merk
259619f00f
Merge branch 'master' into whitesource-step
2019-04-04 16:06:51 +02:00
Oliver Nocon
138656b49b
Allow resilient error handling in pipelines ( #583 )
...
* add resilience to error handling
* adapt documentation
* make ConfigLoader more resilient
2019-04-04 08:38:54 +02:00
Sven Merk
1fe05b8a56
Merge branch 'master' into whitesource-step
2019-04-03 12:19:34 +02:00