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

824 Commits

Author SHA1 Message Date
Oliver Nocon
0e5ccabdae
add step gaugeExecuteTests (#340)
* seleniumExecuteTests - fixes
* add step gaugeExecuteTests incl. tests
* add documentation
* add more config options
2018-10-17 16:44:20 +02:00
Oliver Nocon
1f8b94528c
add step mailSendNotification (#336)
This step allows to send email notifications in case of pipeline failures.
2018-10-17 12:05:11 +02:00
Marcus Holl
96cae66bf4 seleniumExecuteTest with void return value on call method 2018-10-17 12:02:19 +02:00
Christopher Fenner
dba20d496c
Merge branch 'master' into pr/stepReturnVoid 2018-10-17 11:50:58 +02:00
Marcus Holl
f47d540aa3 Introduce dedicated factory method for configuration helper 2018-10-17 11:15:37 +02:00
Florian Wilhelm
7f7afdad1a
Implement workaround for incompatible change in cloud foundry API (#343) 2018-10-17 11:01:09 +02:00
Oliver Nocon
17e8390511
add step healthExecuteCheck (#339)
This step allows to perform a basic health check on an installed application.
It verifies that your app has a simple health endpoint available and that there is no error when calling it.
2018-10-12 16:06:41 +02:00
Marcus Holl
9e27fde76e CommonStepTest 2018-10-11 10:18:39 +02:00
Marcus Holl
6dc1f5aa59 Do not check return value of step isChangeInDevelopment 2018-10-11 10:18:39 +02:00
Marcus Holl
378f34da76 Fix return value for transport request create
since now handlePipelineStepError does not return anything anymore we need to put the
corresponding return statement inside createTransportRequest outside the handlinePipelineStepError
closure.
2018-10-11 10:18:39 +02:00
Marcus Holl
479b1d483a Merge remote-tracking branch 'github/master' into HEAD 2018-10-11 08:36:18 +02:00
Marcus Holl
11a7b24ce8 STEP_NAME test
Asserts that each step (modulo whitelist) comes with a STEP_NAME
field.
2018-10-11 08:24:33 +02:00
Marcus Holl
203be37f75 Merge remote-tracking branch 'github/master' into HEAD 2018-10-09 16:57:26 +02:00
Marcus Holl
b8ff2a5285 Merge remote-tracking branch 'github/master' into HEAD 2018-10-09 16:30:55 +02:00
Marcus Holl
b6a205f9aa Merge remote-tracking branch 'github/master' into HEAD 2018-10-09 15:31:43 +02:00
Christopher Fenner
d6f47e802a
executeDockerOnKubernetes: support workspace/container stashing for sidecar case (#330)
* simplify parameter handover

* extract default contaner name and map

* condense pod execution methods

* simplify closure handling

* fix map issue

* simplify

* stash only if needed

* fix test case
2018-10-08 11:54:13 +02:00
Christopher Fenner
34b675a030
handle test repositories (#324)
* handle test repositories

* use GitUtils

* add test case

* fix test cases

* return stash name

* handle seleniumExecuteTests step

* Revert "handle seleniumExecuteTests step"

This reverts commit 2b33d274fe.

* handle seleniumExecuteTests step

* add import of GitUtils
2018-10-08 11:30:42 +02:00
Oliver Nocon
aeb814fc2b
Merge branch 'master' into pr/noExplictGetterAnDSettersInCommonPipelineEnvironment 2018-10-08 09:45:14 +02:00
Oliver Nocon
0ee27774f6
Merge branch 'master' into pr/assertOrderOfGitCommands 2018-10-08 09:43:16 +02:00
Oliver Nocon
130fe6a941
Merge branch 'master' into pr/swaPushOldConfigUsed 2018-10-08 09:42:33 +02:00
Oliver Nocon
7a961ef38e
seleniumExecuteTests - add step to run Selenium tests (#318)
It comes with an extension to executeDocker and executeDockerOnKubernetes to run sidecar containers.

This helps to execute Selenium tests using two Docker images:

1. Execution runtime for tests (e.g. node image)
2. Selenium instance which holds Selenium server + browser

* add documentation & some name cleanup
* include PR feedback
* add step documentation to structure
2018-10-04 17:06:42 +02:00
Marcus Holl
afc17707d8 Notify about old config (properties) used 2018-10-02 10:56:13 +02:00
Marcus Holl
ba725dc52f test asserting setupCPE works with config properties file 2018-10-02 10:55:50 +02:00
Marcus Holl
d0d4cac75b Assert that there is no git commit if there should be not commit intentionally (#321)
up to now only the mvn call for setting the version was asserted, but it was not asserted
whether or not there is a commit.
2018-10-02 08:53:21 +02:00
Marcus Holl
252c6da4bd Ensure the order of the git commands
Up to now we checked for git commands, but the order was not taken into account.
Test would pass even if the commit happens before git add.

Now the order of the git commits is asserted.
2018-10-01 13:56:59 +02:00
Marcus Holl
0e6f44a4ed Switch default for changeManagement.type to NONE
before we had SOLMAN.
2018-09-28 14:16:20 +02:00
Marcus Holl
2d779233cc Swich for switching off cm integration 2018-09-28 14:16:19 +02:00
Marcus Holl
01b03f0df3 [refactoring] Reduce number of sh calls 2018-09-27 16:18:46 +02:00
Marcus Holl
3e556f4afb test asserting setupCPE works with config properties file 2018-09-27 15:46:06 +02:00
Marcus Holl
f14781d913 Report all missing mandatory parameters instead of only the first one 2018-09-27 11:13:47 +02:00
Marcus Holl
09e4e999a2 Merge remote-tracking branch 'mholl/pr/shStdoutOrReturnStatus' into HEAD 2018-09-27 09:10:06 +02:00
Marcus Holl
752993aefa Merge remote-tracking branch 'github/master' into HEAD 2018-09-27 08:24:04 +02:00
Marcus Holl
56d150932f release transport CTS support 2018-09-25 12:34:52 +02:00
Marcus Holl
4d7274ee45 Introduce backend type for releasing transports 2018-09-25 10:50:05 +02:00
Marcus Holl
de05e1dc55 Merge provide either stdout or return status 2018-09-25 10:11:14 +02:00
Marcus Holl
ddbb09fa66 transport request create CTS 2018-09-25 09:27:11 +02:00
Marcus Holl
f34308ffe0 upload file to transport for CTS use case 2018-09-24 15:08:01 +02:00
Marcus Holl
726b969682 Merge remote-tracking branch 'github/master' into HEAD 2018-09-21 13:33:42 +02:00
Marcus Holl
9cd31e7236 Merge remote-tracking branch 'github/master' into HEAD 2018-09-21 13:27:29 +02:00
Marcus Holl
f07b596c46 Merge remote-tracking branch 'github/master' into HEAD 2018-09-21 12:48:14 +02:00
Marcus Holl
8a5685bae7 Merge remote-tracking branch 'github/master' into HEAD 2018-09-21 12:18:25 +02:00
Marcus Holl
123ce3a603 Merge remote-tracking branch 'github/master' into HEAD 2018-09-21 11:20:14 +02:00
Marcus Holl
42188d3a4f Merge remote-tracking branch 'github/master' into HEAD 2018-09-21 11:13:07 +02:00
Marcus Holl
141210beb2 Expose backendType for uploading files into transports 2018-09-18 15:56:35 +02:00
Marcus Holl
8ed864b87f Merge commit 'cfd25198b04e9eae19139dcf429518667863f423' into HEAD 2018-09-18 14:57:36 +02:00
Marcus Holl
e40e3eb72f Introduce backendType in ChangeManagement util internally
without affecting method signatures.
2018-09-18 14:54:40 +02:00
Marcus Holl
cfd25198b0 transportRequestUploadFile step 2018-09-18 14:49:06 +02:00
Marcus Holl
726fbe36ab Limit usage of ConfigurationHelper to the builder pattern
it is the duty of the configuration helper to build a map
providing the configuration. Having facilites to use the
ConfigurationHelper as some kind of configuration registry
makes life more complicated.
2018-09-17 12:56:18 +02:00
thorstenwillenbacher
1420c8a5bd
Merge branch 'master' into pr/premoveDeclarationsOfPrepareObjectInterceptors 2018-09-14 10:12:26 +02:00
Marcus Holl
c1900f6ecd Remove output to stdout from tests
In fact nobody reads it, but on some IDEs it is shown when tests are executed.
2018-09-14 09:08:52 +02:00
Marcus Holl
dc9ce9a732 Remove generic gitUtils from BasePiperTest
there is only one test class making use of it left. This test class is the
GitUtilsTest itself.

Hence moving this member downwards in the test class hierarchy into GitUtilsTest.

I doubt it makes sense to make use of a generic git utils mock somewhere else since this basically
means to test the GitUtils class in the conxtext of other examinees. For that there is no need.
The GitUtils class should be tested by the corresponding test class, but not in a transive manner
by other tests. For all other tests a specific git utils mock should be provided mocking the corresponding
method class. This is already the case today, otherwise we would have more test classes making use
of the generic git utils mock.
2018-09-13 16:01:35 +02:00
Marcus Holl
3c5f3ee2f5 Merge remote-tracking branch 'github/master' into pr/cleanWorktreeCheck 2018-09-13 15:00:36 +02:00
Marcus Holl
8afec9b4dc Merge remote-tracking branch 'github/master' into HEAD 2018-09-12 11:14:03 +02:00
Marcus Holl
d31e0e73cb Remove not (really) needed declarations of prepareObjectInterceptors
- In ArtifactSetVersionTest the method was declared,
    but not used at all.
  - In MtaUtilsTest there was a particular Object created
    for the sole purpose of serving as script.
    For that we have the nullScript.
  - In DockerArtifactVersioningTest 'this' was configured to
    serve as script. There is basically no reason why the
    instance of the JUnitTest should serve as script.
    Instead we have the nullScript for that purpose.
2018-09-10 16:52:44 +02:00
Sven Merk
61de848114
Merge branch 'master' into pr/removeMockHelper 2018-09-10 14:03:07 +02:00
Marcus Holl
aedfb13a6b Merge remote-tracking branch 'github/master' into HEAD 2018-09-10 13:52:22 +02:00
Marcus Holl
9e378d6b46 Remove obsolete code: mockHelper
in fact the MockHelper seems not to be used anymore. Apparently fully
superseded by our JenkinsRules.
2018-09-10 13:44:42 +02:00
Christopher Fenner
bce7f370de
Merge branch 'master' into pr/cleanWorktreeCheck 2018-09-10 13:28:57 +02:00
Marcus Holl
c0c0adbeda Prune useless code from MTABuild test. (#288)
should have been removed earlier with the other pull request removing writing the test files.
This is pure leftover.
2018-09-10 13:28:11 +02:00
Marcus Holl
55a952522b ConfigurationHelper: replace all occurences of GString by java.lang.String
GStrings might be handed over e.g. via signature to steps.

GStrings in configuration makes it harder to deal with configurations.
E.g.
   ```if(param == 'a' || param == 'b')``` returns true if a is a GString representing 'a'
but
   ```if(param in ['a', 'b'])``` returns false.

It would be possible not to use the ```in``` notation in our code. But this
increases readability.

GString are not significant and can be replaced by the corresponding java.lang.String
representation without loss of information. Hence it is justified IMO to ensure
there are no GStrings contained in the configuration map.
2018-09-10 10:10:19 +02:00
Marcus Holl
68ab5bacd6 mock GitUtils
if we don't mock the GitUtils here changes inside GitUtils affecting the git commands
issued at the command line requires changes here. In fact we have to react on
implementation details of the GitUtils here. It is better to be independent from that
implementation details here since this leads to more focused and smaller commits.
2018-09-07 16:14:00 +02:00
Marcus Holl
cce1eb0f9a Execute closures when evaluating shell calls
This allows us to e.g. also throw exceptions (e.g. hudson.AbortException) when dealing with
mocked shell calls.
2018-09-07 15:27:55 +02:00
Marcus Holl
0dd74fe684 GitUtils: provide method for checking worktree is clean. 2018-09-07 12:38:14 +02:00
Marcus Holl
5f66113c37 no script in method signatures. 2018-09-06 16:45:30 +02:00
Marcus Holl
2b95be12aa Ensure proper initialization of ConfigurationHelper
Up to now we had two constructors, one with a Script and the other one with a map holding some defaults.
In case the constructor with the map was called the step name was uninitialized
2018-09-06 16:21:38 +02:00
Marcus Holl
b65eca35b2 MapUtils: Provide method for traversing of nested maps. 2018-09-06 12:17:55 +02:00
Christopher Fenner
7b49858233
Merge branch 'master' into pr/artifactSetVersionStreamlineGitHandling 2018-09-05 11:46:11 +02:00
Marcus Holl
12d8f48c38 Do only what is really needed inside the body of sshAgent
- there is no need to do the git commit inside the body of sshAgent
- there is no need to do the git tag inside the body of sshAgent

- side catch: availablility of git user name and git user email is
  checked at its own. If one is missing the other may be present
  ~somehow~ in the configuration.
2018-09-04 17:04:07 +02:00
Florian Wilhelm
50ac5b0ac9
Execute MTA builder in Docker 2018-09-04 11:32:54 +02:00
Marcus Holl
cb3860ffe9 remove not needed closure when registering yaml file 2018-09-04 10:50:03 +02:00
Marcus Holl
138a41f02a Merge remote-tracking branch 'github/master' into work 2018-09-04 10:42:36 +02:00
Marcus Holl
6b7dc48c44 Be more flexible with JenkinsReadYaml rule
When we register a closure as file, the closure will be exectutd.
Otherwise we return what is registered.

This gives us a maximum level of flexibility. We can throw exceptions (e.g. FileNotFound) as
as test setup requires this, in simple cases we provide the yaml as a string.
2018-09-04 09:46:59 +02:00
Marcus Holl
fb425a4c70 Register empty pipeline config yml by default 2018-09-03 15:43:17 +02:00
Marcus Holl
94241f1a6c Register yaml content at beginning of test 2018-09-03 15:43:17 +02:00
Marcus Holl
26ecbe5013 Provide option for registering file for read yaml.
We can now registering files to JenkinsReadYamlRule by
providing the file name alongside with the expected content
(or e.g. an expception)

With that change it is possible to remove pwd statements
from mtaBuild. These statements was used in order to pass
a temporary directory inside the mtaBuild (code under test).
This is not needed anymore since we can register the files
directly.

Having pwd implies working with absolute pathes which is
also a no-go when working with docker, since the absolute
pathes inside and outside docker are normally not the same.

For pathes relative to a build root directory it is rather
easy to keep the pathes consistent the same.

Adjust sources according to registering yaml file to jenkins rule.

For mtaBuild this means also: get ride of absolute pathes for denoting the yaml file.
Having absolute pathes makes it difficult/impossible to work also with dockerized versions
of mtaBuild since the absolute pathes are most probably not the same inside and outside
the docker container, but the relatives pathes can be kept the same easily.
2018-09-03 15:43:15 +02:00
Marcus Holl
5cca5fddbb Tests: make use of JenkinsCredentialsRule
JenkinsCredentialsRule now closer to reality since it mimics
the bevavior or the credentials plugin in case a credential
is not known.
2018-09-03 12:28:08 +02:00
Marcus Holl
c54b6e6cf2 Make DefaultConfigurationCache instance checks more precise
up to now we check some values provided by the DefaultConfigurationCache. This is some kind
of plausibility check, but this is not really a check that the instance did not change.

With the tests as they are now we check in fact for a new instance.
2018-09-03 09:38:41 +02:00
Marcus Holl
b6fd507145 Be more precise with libraryResource and read yaml in prepareDefaultValuesTest
In the free wild it is the duty of libraryResource to provide some resource as text
and it is the duty of readYaml to parse a text (... would also be possible to read
a file instead just parsing text, but that is a different story).

In our setup we just forwarded the resource name in libraryResource and reacted on
that resource name inside read yaml. There was no yaml parsing at all, the yaml 'as
it' was returned.

The approach now is much closer to reality. Library resource now provides the
text 'behind' the resource and yaml parses it. There is now a real yaml parsing.
Read yaml is now not registered explicitly anymore. It is just the readYaml closure
which is registerd by default for our tests.
2018-09-03 09:24:57 +02:00
Marcus Holl
f2feb8f5ad Ensure consistent location for files used by versioning tests (#278) 2018-08-31 14:13:11 +02:00
Marcus Holl
8a019f5b86 Remove read yaml rule from common rules
read yaml rule is a very frequently used rule. But having the rule in the common rules
means we cannot register text or files to that rule, which makes it less handy to work
with yaml files in the tests.
2018-08-31 10:22:46 +02:00
Christopher Fenner
4425629ee7
notify about deactivated SWA reporting (#261)
* report deactivated SWA reporting

* Update Utils.groovy

* add tests

* add test cases

* use hamcrest matchers in tests

* check for missing call to web analytics

* Update UtilsTest.groovy
2018-08-29 10:01:16 +02:00
Roland Stengel
67429626a7 cmclient call needs to quote the file path 2018-08-28 15:29:08 +02:00
Marcus Holl
edee92020c No versionBackup files for mvn versioning (#259) 2018-08-22 09:59:19 +02:00
Ramachandra Kamath Arbettu
c84114c3df
Enable support for executing on K8S as a step (#231)
* Create executeDockerOnKubernetes.groovy

* Update dockerExecute.groovy

* Create SysEnvTest.groovy

* Update default_pipeline_environment.yml

* Update executeDockerOnKubernetes.groovy

* Create utils object

* update docker image

* Update mavenExecute.groovy

* Use pipeline-lib than piper

* Check container name

* Always change ownership to 1000

* Check for map

* Fix command

* Move chmod to docker execute

* Use generic name for the pod

* runAsPod has been added

* Return false if script has no k8smapping

* fix syntax error

* Null checks

* Returnn dockerImage name

* Check method body

* Return container name

* Cleanup echos

* Use runAsPod

* Rename step

* Use official jenkins JNLP agent image

* Construct containersMap

* Check if kubernetes plugin is active

* Support JaaS

* pass script object

* Move configuration to default section

* Use generic flag to check if running in k8s

* fix jnlp agent name

* Solve travis errors

* Improvements to config and changes to name of the method

* Improvements to config

* Fix type

* Rename stash config

* add import

* Fix map order

* Fix jnlp agent name

* cleanup config usage

* Check if config is enabled

* Use nested k8s mapping

* Support custom docker workspace and move flag to env

* Feature/k8s stage (#1)

* Use nested k8s mapping

* Support custom docker workspace and move flag to env

* Check dockerOptions value

* Support local execution

* Add tests for dockerExecute

* Move config to step and Fix tests

* Use step configuration while running as a pod

* Streamline parameter and config initialization

* Streamline parameter and tests

* Cleanup and align variable name

* Use default JNLP agent if one not defined in config

* Add tests for runInsidePod. Ensure lowercase container names.

* Improve tests and remove unused code block

* Fix permission issues

* Perform stashing and unstashing inside container

* Use custom jnlp agent due to user id restriction

* Fix tests after jnlp agent change

* Address review comments

* Initialize script to default value if null

* Address review comments

* Update exeception handling and documentation

* Improve documentation

* correct indent

* Link documents to the index page

* Merge containerExecute and dockerExecuteOnKuberenetes step and address comments.

* Update dockerExecute.md

* Update dockerExecuteOnKubernetes.md

* Update default_pipeline_environment.yml

* update documentation

* Update documentation. Use annotation for singleton

* Update DockerExecuteOnKubernetesTest.groovy

* Update dockerExecute.groovy

* Update dockerExecuteOnKubernetes.groovy

* Improve documentation and test case names

* neoDeploy: switch to chained ConfigurationHelper (#244)

* switch neoDeploy to chained ConfigurationHelper

* update imports

* Improve tests

* Address review comments

* Improve documentation

* made dockerImage non-mandatory parm, improved test

* add comment regarding userid assumption
2018-08-21 15:45:59 +02:00
Marcus Holl
044e940dec No need for manipulating origin url
the gitSshUrl can be provided directly to the push call. This avoids footprint on the build
servers git repository.
2018-08-21 13:39:48 +02:00
Marcus Holl
6c6f106f26 Avoid several sh calls for consecutive git calls. 2018-08-21 13:39:48 +02:00
Marcus Holl
3a72d16185 neoDeploy with archvive from CPE 2018-08-17 15:46:46 +02:00
Christopher Fenner
6007f54074
use new config handler in steps (#253)
* use new config handler

* use new config handler

* add reporting

* Update checksPublishResults.groovy

* remove unused ConfigurationMerger methods

* fix typo

* revert changes on script loading

* remove outdated test case

* Add missing import
2018-08-15 11:53:28 +02:00
Oliver Nocon
17ee927807
batsExecuteTests - add step for executing bats-core (#254)
details are available in the documentation contained in this PR
2018-08-15 11:41:01 +02:00
Christopher Fenner
8e40a4cf62
Merge branch 'master' into pr/trUploadFileApplicationIdFromConfiguration 2018-08-15 09:59:25 +02:00
Marcus Holl
45f4952c71 Read applicationId also from configuration 2018-08-15 09:48:59 +02:00
Marcus Holl
bfb131407d Merge remote-tracking branch 'github/master' into HEAD 2018-08-14 12:13:30 +02:00
Christopher Fenner
c538e896f3
Merge branch 'master' into CCFenner/newman 2018-08-09 14:25:22 +02:00
Oliver Nocon
71f7f05427
add telemetry reporting to steps (#243)
add telemetry to all steps using ConfigurationHelper.
Other steps need to be switched to ConfigurationHelper first.

update docs
2018-08-09 11:35:33 +02:00
Thorsten Willenbacher
9dfc7fcd01 refactor withCredentials to ChangeManagement util class
fix tests to match refactoring
2018-08-09 11:03:30 +02:00
Christopher Fenner
059268459a
Merge branch 'master' into CCFenner/newman 2018-08-09 10:34:00 +02:00
Oliver Nocon
65b582dc9d
artifactSetVersion - add new artifact types & cleanup (#242)
* artifactSetVersion - add new artifact types & cleanup

added:
* dlang
* golang
* npm
* pip
* scala

* add documentation update
2018-08-08 22:21:26 +02:00
Christopher Fenner
240df88882
add stashing & private test repositories 2018-08-08 11:22:08 +02:00
Marcus Holl
3d78affc3b
Merge branch 'master' into pr/transportRequestUploadFilewithMtarFileFromCPE 2018-08-03 08:49:05 +02:00
Christopher Fenner
2c2700f10a
Merge branch 'master' into CCFenner-patch-2 2018-08-01 08:54:45 +02:00
Christopher Fenner
30f0c5a6cc
correct test cases 2018-08-01 08:50:21 +02:00
Christopher Fenner
0db93df011
fix closure 2018-08-01 08:41:49 +02:00
Christopher Fenner
8c7dc44d1d
add tests 2018-08-01 08:30:10 +02:00
Marcus Holl
0bac7ac27e Take mtarFilePath in commonPipelineEnviroment into account
This allows the steps to interact without using return values (which is not possible in
declarative pipelines). On the other hand we have depencencies between the steps based
on the status of the commonPipelineEnvironment.
2018-07-31 16:55:15 +02:00
Marcus Holl
f2e0e81802
Merge branch 'master' into fix/rolebackNeoDeployChange 2018-07-31 16:41:36 +02:00
Oliver Nocon
d844b23b90
add cloudFoundryDeploy step (#173)
* add cloudFoundryDeploy step
* added cf-cli docker image
* support existing parameters
* support check script with flexible STATUS_CODE
* add mandatory parameters
* fix compatibility handling
* address PR feedback
* fix access to smokeTest script
* make credentialsId mandatory to avoid NPE
2018-07-30 09:28:24 +02:00
Marcus Holl
d49a9ad68c Revert "remove the tool descriptor from neo deploy"
This reverts commit c3c7d8b142.
2018-07-27 14:09:08 +02:00
Florian Wilhelm
0a86c8534d
Improve check for batch mode in mavenExecute (#226)
The old naive check fails if an argument starts with '-B'. Now we use a
regular expression, which should correctly match if batch mode was
already supplied, and add it if not.
2018-07-26 16:03:05 +02:00
rodibrin
9e547cd605
Merge branch 'master' into pr/neoimage 2018-07-26 10:04:20 +02:00
Roland Stengel
c3c7d8b142 remove the tool descriptor from neo deploy 2018-07-25 15:23:56 +02:00
Marcus Holl
f16d5c766b Merge remote-tracking branch 'github/master' into HEAD 2018-07-25 12:26:20 +02:00
Christopher Fenner
aa57127e84
Merge branch 'master' into pr/readNestedProperties 2018-07-25 09:49:33 +02:00
Marcus Holl
411fd7fe62 Access to nested properties
yaml configuration supports nested properties. With this change
we can read those nested properties.
2018-07-25 09:47:16 +02:00
Marcus Holl
2a851abdfd Merge remote-tracking branch 'github/master' into HEAD 2018-07-23 09:41:02 +02:00
Marcus Holl
b65a5d5699 Release transport request: decouple tests
Focus on only one class under test, not having the step and the util class under
test at once.
2018-07-23 09:39:40 +02:00
Marcus Holl
43a9dcbcfd Do not fail immediatly in case commit history does not contain a changeDocumentId
we emit a log message and fail later at withManadotoryProperty check.
2018-07-19 10:26:34 +02:00
Marcus Holl
1e0fa0799e [fix] Remove early check for mandatory param 'changeDocumentId'
otherwise we will never try to read the change document id from commit history.
2018-07-19 10:09:24 +02:00
Marcus Holl
46f6587a97 Merge remote-tracking branch 'github/master' into HEAD 2018-07-19 09:17:07 +02:00
Marcus Holl
3effe404b0 Merge remote-tracking branch 'github/master' into HEAD 2018-07-19 08:54:57 +02:00
Marcus Holl
0678019efb Merge remote-tracking branch 'github/master' into HEAD 2018-07-18 12:49:41 +02:00
Marcus Holl
ab0a0c6882 Introduce CredentialsRule
Instead of configuring the credentials setup

  o withCredentials
  o usename

in each of our tests (for the moment change-management related)
we collect the common coding in a JUnitRule.
2018-07-18 12:45:30 +02:00
Marcus Holl
f2bf406dee Merge remote-tracking branch 'github/master' into HEAD 2018-07-18 12:42:54 +02:00
Marcus Holl
9d9c17d937 Merge remote-tracking branch 'github/master' into HEAD 2018-07-18 12:23:34 +02:00
Marcus Holl
3e3af733f2 Merge remote-tracking branch 'github/master' into pr/fixExceptionMessage 2018-07-18 11:45:48 +02:00
Roland Stengel
4851ba94bf drop NEO version verification - remove neo version check 2018-07-18 09:46:11 +02:00
Roland Stengel
38360f1d0c drop NEO version verification - introduce getVersion 2018-07-17 20:56:31 +02:00
Marcus Holl
9b4d55d0d9 switch to nested configuration for change management related steps 2018-07-17 16:41:42 +02:00
Marcus Holl
1e23a9ba3e Merge remote-tracking branch 'mholl/pr/readNestedProperties' into HEAD 2018-07-17 11:22:23 +02:00
Marcus Holl
4b2ee0d4ad [fix] Excpetion message contains config key instead of value. 2018-07-17 10:08:47 +02:00
Marcus Holl
4f8f7be6aa Access to nested properties
yaml configuration supports nested properties. With this change
we can read those nested properties.
2018-07-16 17:26:22 +02:00
Marcus Holl
83e757475a Merge remote-tracking branch 'github/master' into HEAD 2018-07-16 12:09:49 +02:00
Marcus Holl
b72cb656d5 Merge remote-tracking branch 'github/master' into HEAD 2018-07-16 11:15:22 +02:00
Marcus Holl
7482b58dc2 UploadFileToTransport: Read transportRequestId from commit history 2018-07-16 10:28:59 +02:00
Marcus Holl
bb0e9b92ce transport request upload file: decouple tests. 2018-07-13 16:09:51 +02:00
Marcus Holl
0337b34cef [whitespace only] increase readability 2018-07-13 14:40:54 +02:00
Marcus Holl
254a4e2017 Remove unused sh registerAllowedMethod
registerAllowedMethod for sh call not used anymore since we mock the ChangeManagement utils class.
The sh calls was triggered from the utils class. Since we mock that class, there is no sh call
anymore.
2018-07-13 13:23:10 +02:00
Marcus Holl
63b0fd6f67 Merge remote-tracking branch 'github/master' into HEAD 2018-07-13 10:30:29 +02:00
Marcus Holl
b73df0f682 ReleaseTransportRequest: Read transportRequestId from commit history 2018-07-12 16:00:27 +02:00
Marcus Holl
8d60a81ec5 Read transportId from commit history: split getChangeID method 2018-07-12 14:17:33 +02:00
Marcus Holl
c9572d187b Merge remote-tracking branch 'github/master' into HEAD 2018-07-12 13:23:00 +02:00
Marcus Holl
52052cc99d
Merge pull request #196 from marcusholl/transportRequestCreateChangeDocumentIdFromCommitHistory
transportRequestCreate: retrieve changeDocumentId from commit history
2018-07-12 13:14:34 +02:00
Marcus Holl
3cb8912456
Merge pull request #180 from marcusholl/pr/supportCmClientOptsUploadFileToTransport
Support CM clientOpts for uploadFileToTransport
2018-07-12 10:16:07 +02:00
Marcus Holl
52bb1e842d Validate required parameters via config helper
- In case a parameter is missing we do not thrown and AbortException
    anmore, but an IllegalArgumentExcpetion, since that exception is
    thrown by the configuration helper. The difference is: AbortExceptions
    are contained in the log without stacktrace, other exceptions are
    printed with stack trace.
  - Exception messages are changed to the standard error message triggered
    inside the configuration helper. In case the changeDocumentId is
    retrieved also from the commit history we keep an exception message
    pointing to that.
  - Having references to the parameters is droped. Instead the parameters
    are directly used from the configuration map.
  - in case of long signatures line breaks are inserted in order to
    simplify reading the code.
2018-07-12 09:34:06 +02:00
Christopher Fenner
1423522e2f
Merge pull request #201 from marcusholl/pr/fixQuotationMark
[fix] misplaced quotation mark in assertion message
2018-07-12 09:21:30 +02:00
rodibrin
4cb5ba5f3f
Merge pull request #194 from rodibrin/pr/newmanexecutetest
adapt the NewmanExecuteTest to windows file system
2018-07-12 08:56:28 +02:00
Marcus Holl
c1927da33f [fix] misplaced quotation mark in assertion message 2018-07-12 08:12:32 +02:00
Marcus Holl
239e8cc054
Merge pull request #199 from marcusholl/pr/supportAssertOfLogMessageInCaseOfFailures
Support check for log messages in case of exceptions in code under test
2018-07-11 12:29:21 +02:00
Christopher Fenner
aa865f145f
Merge pull request #172 from SAP/CCFenner/mtaVersioning
add versioning for MTAs
2018-07-11 11:53:20 +02:00
Marcus Holl
111802cfd2 Support check for log messages in case of exceptions in code under test
With the current approach of checking log entries we are not able to
check log entries in case of a failure. But is is important to assert
log messages in case of a failure. Having reasonable log messages
simplified troubleshooting.

Hence we add JenkinsLoggingRule.expect(substring) and check after the
base of that rule has been called.

This interfears with other rules also working with an expect approach,
like e.g. ExpectedException. Which violation is presented depends on
the order or the rules around the test case.
2018-07-10 17:34:58 +02:00
Marcus Holl
cada0e7882 transportRequestCreate: retrieve changeDocumentId from commit history 2018-07-10 16:41:43 +02:00
Marcus Holl
a7ea15ac58 transportRequestUploadFile: retrieveChangeDocumentId from commit history 2018-07-10 16:40:26 +02:00
Marcus Holl
4a9c0695ca transportRequestRelease: get changeDocumentId from commit history 2018-07-10 16:34:42 +02:00
Roland Stengel
81c0110740 adapt the NewmanExecuteTest to windows file system 2018-07-10 13:10:16 +02:00
Marcus Holl
5e09e2fb88 No forwarding of config map in to ChangeManagement class. 2018-07-10 12:30:31 +02:00
Marcus Holl
bb2ed27c10 Switch from gitLabel to gitChangeDocumentLabel
since we will have two labels in future. One for scanning changeDocumentIds and
another one for scanning transportRequestIds
2018-07-10 11:15:09 +02:00
Marcus Holl
71ca78e0a9 Switch from git_xxx to gitXxx like properties 2018-07-10 11:14:43 +02:00
Marcus Holl
74b6ac0c8e Support cmclient_opts in transportRequestCreate 2018-07-09 15:41:13 +02:00
Marcus Holl
d8d2249862 Support cmclientOpts for uploadFileToTransport 2018-07-09 09:40:07 +02:00
Marcus Holl
6829319ca5 Remove wrong package declaration and stange grovvy shebang
o we are in the default package, hence package 'steps' is inappropriate
o there is also no grovvy shebang in other test files, why should it be here?
2018-07-06 13:37:20 +02:00
Marcus Holl
44cee0475d
Merge pull request #176 from marcusholl/pr/decoupleTests
Pr/decouple tests
2018-07-06 13:09:44 +02:00
Marcus Holl
cf09b45025
Merge pull request #161 from marcusholl/marcusholl/pr/landscapeConfigLayer
Provide configuration layer for custom configuration
2018-07-06 12:47:52 +02:00
Christopher Fenner
96b2880ea0
Merge pull request #186 from SAP/CCFenner/newmanExecute
add step for Newman test execution
2018-07-06 10:27:55 +02:00
Marcus Holl
20612c726f Add tests asserting log messages 2018-07-04 11:56:53 +02:00
Marcus Holl
99c6012f4a
Merge pull request #177 from marcusholl/pr/customMessageForWithMandatoryParameter
withMandatoryParameter supports a error message from the caller
2018-07-04 11:42:52 +02:00
Christopher Fenner
cd891acc97
remove println 2018-07-04 11:13:41 +02:00
Marcus Holl
22b6dd63f6 Merge custom defaults with library defaults. 2018-07-03 17:01:22 +02:00
Marcus Holl
c29fb02dd9 wip 2018-07-03 17:01:22 +02:00
Christopher Fenner
232705f58c
add tests 2018-07-03 14:39:20 +02:00
Christopher Fenner
12cf07a73d
align used node images 2018-07-03 14:22:22 +02:00
Roland Stengel
b00a8c203a restore tracked methods on afterTestMethod 2018-07-02 14:03:41 +02:00
Marcus Holl
aa900d7dcf withMandatoryParameter supports a error message from the caller 2018-06-29 11:15:37 +02:00
Marcus Holl
d270a2d232 Decouple tests: transport request upload file 2018-06-29 10:53:47 +02:00
Marcus Holl
5a73af4c02 Decouple tests: transport request create 2018-06-29 10:15:20 +02:00
Alejandra Ferreiro Vidal
cc9332ae79
Merge pull request #175 from alejandraferreirovidal/changeParameters
change credentialsId and endpoint
2018-06-29 10:12:58 +02:00
Marcus Holl
3766bf4794
Merge pull request #166 from marcusholl/cm
isChangeInDevelopment
2018-06-29 08:25:15 +02:00
Marcus Holl
1a815c32cd
Merge pull request #165 from marcusholl/pr/scriptCallRuleWithRegex
Return a return value based on a regex comparism
2018-06-29 08:24:37 +02:00
Alejandra Ferreiro Vidal
ab8a1bb837 change credentialsId and endpoint 2018-06-28 16:24:14 +02:00
Marcus Holl
1493393805 Improve log message in case a call to cmclient for getting change status fails. 2018-06-28 15:37:14 +02:00
Marcus Holl
bdef708522 Assert logging 2018-06-28 15:37:14 +02:00
Marcus Holl
6d943d2005 Support CMCLIENT_OPTS
needed e.g. for providing a trust store.
2018-06-28 15:37:13 +02:00
Marcus Holl
5d0ffa3e69 Make use of unified cmCommandLine 2018-06-28 15:37:13 +02:00
Marcus Holl
38c6d35adb Introde getCMCommandLine 2018-06-28 15:37:13 +02:00
Marcus Holl
9d0eb79d94 filter null values from changeId array. 2018-06-28 15:37:13 +02:00
Marcus Holl
c494e33c1d Tests for isChangeInDevelopment 2018-06-28 15:37:13 +02:00
Marcus Holl
37ba20d060 more tests 2018-06-28 15:37:13 +02:00
Marcus Holl
00304d67db [refactoring] getting the gitUtils mock 2018-06-28 15:37:12 +02:00
Marcus Holl
cdb26e6b91 Introduce test for pipeline step checkChangeInDevelopment 2018-06-28 15:37:12 +02:00
Marcus Holl
9adad5ba37 Get changeDocumentId from git commits. 2018-06-28 15:37:12 +02:00
Marcus Holl
d8dca885bb Change parameter name 'changeId' to 'changeDocumentId'
the official term in SAP-SolutionManager is 'change document'.

The term 'change' as reflected in 'changeId' is ambigous and could also be understand in the
sense of a change in a revision control system.

Choosing appropriate terms for parameters here deceases the amount of documentation
required for explaining what is really denoted by the parameter.
2018-06-28 13:46:00 +02:00
Marcus Holl
dd456f0d00 Return a return value based on a regex comparism
Comparism on plain string level gets complicated for complex commands and means
an implict check for an exact version of a command line. There are cases where
such an exact check is not desired, e.g. there is nothing wrong with having the
order of arguments variable.
2018-06-28 13:38:48 +02:00
Christopher Fenner
cd10eed0c3
fix test issue on Windows 2018-06-27 14:56:50 +02:00
Christopher Fenner
44ff690a77
fix test issue on Windows 2018-06-27 14:38:57 +02:00
Christopher Fenner
70f7e5a6fa
fix test issue on Windows 2018-06-27 14:28:16 +02:00
Christopher Fenner
251f731ca8
fix test issue on Windows 2018-06-27 14:19:40 +02:00
Christopher Fenner
a93443ebdf add MTA versioning class 2018-06-27 11:08:09 +02:00
Marcus Holl
95520331e1
Merge pull request #168 from SAP/CCFenner/snykExecute
add step for snyk open source vulnerability scan
2018-06-27 10:11:34 +02:00
Christopher Fenner
bc84497b24
remove obsolete parameter 2018-06-27 09:59:44 +02:00
Christopher Fenner
267f5f6936
use default image / workspace 2018-06-27 09:52:32 +02:00
Christopher Fenner
f9d4fbda53
correct step name 2018-06-26 15:34:32 +02:00
Christopher Fenner
426f23b232
add step tests 2018-06-26 15:08:46 +02:00
Alejandra Ferreiro Vidal
4464c9427b add step transportRequestRelease 2018-06-26 10:40:08 +02:00
Alejandra Ferreiro Vidal
12652be421 add step transportRequestUploadFile 2018-06-26 10:40:07 +02:00
Alejandra Ferreiro Vidal
e34f99deac add step transportRequestCreate 2018-06-26 10:40:06 +02:00
Christopher Fenner
e51b82e0ea
fix imports 2018-06-25 22:49:34 +02:00
Christopher Fenner
b891b36fbf
add further test case 2018-06-25 22:45:43 +02:00
Christopher Fenner
1c924cc8df
add test for MtaMultiplexer 2018-06-25 14:53:28 +02:00
Christopher Fenner
257308298d extract map merging to MapUtils (#156)
* Update MapUtils.groovy

* Update ConfigurationMerger.groovy

* tests

* forward skipNull

* Fix indent in tests

* More tests.

* MapUtils simplified wrt deep merge and pruneNulls

* Add test for isMap with null value
2018-06-20 10:15:36 +02:00
Alejandra Ferreiro Vidal
fbefcfeffd include special characters in mta.jar file namex 2018-06-12 19:12:08 +02:00
Marcus Holl
3499d4843c GitUtils: Extract lines matching a pattern from a set of commits
In preparation of SOLMAN features. Here we need to get a change
document ID out of the commit message.

Start and end commit can be provided as well as a log format
and a filter condition.
2018-06-11 09:53:26 +02:00
Marcus Holl
599e8dedbc
Merge pull request #149 from marcusholl/pr/improveShellCallRuleReturnValues
fix: apply same script transformation when registering script and whe…
2018-06-11 09:49:52 +02:00
Marcus Holl
dd36e6ea5b
Merge pull request #152 from marcusholl/pr/neoDeployTestMoreTolerantWrtArgOrder
Make neo command line tests more tolerant wrt to order of args
2018-06-11 09:49:08 +02:00
Marcus Holl
3ae2d0ae47
Merge pull request #150 from marcusholl/pr/insideWorkingTree
git utils: is inside working tree
2018-06-11 09:46:51 +02:00
Daniel Kurzynski
322a437763 Revert "Merge branch 'master' of https://github.com/SAP/jenkins-library"
This reverts commit 65220efb4e, reversing
changes made to cf17510641.
2018-06-08 11:55:38 +02:00
Ramachandra Kamath Arbettu
d78dc454fb Support K8S execution 2018-06-07 13:58:32 +02:00
Florian Wilhelm
6dc13801b0
Disable download logs in Maven by default (#159)
Disable download logs in Maven by default

This commit adds a flag to Maven by default, which disables the messages
like "Downloading from central".

The logger is set to level "warn", so errors will still be visible, but
successful messages won't clutter logs anymore.

This option is also set by default in the GitLab CI template file for
maven.

See [1] for reference on the option.

1: https://stackoverflow.com/a/35653426/8843830
2018-06-06 14:42:47 +02:00
Oliver Nocon
f8e5733486 speed up tests
* use new base class for testing
* initialize jenkins unit test framework only once for all test classes
* minor test cleanups
2018-06-06 11:19:19 +02:00
Oliver Nocon
96cc75d72a pipelineStashFiles - cleanup & documentation
This contains some cleanups to the code
plus documentation for the step
2018-06-01 12:33:06 +02:00
Oliver Nocon
e276f58573 fix tests 2018-05-30 12:58:52 +02:00
Thorsten Duda
2e2b43d68b add missing file 2018-05-30 12:39:01 +02:00
Thorsten Duda
fed20184b4 fix maven execute test 2018-05-30 12:30:26 +02:00
Oliver Nocon
9d0e7eaf4e add steps for file stashing 2018-05-30 12:00:13 +02:00
Marcus Holl
4ca3236ba4 general default section mixed in automatically. 2018-05-30 10:53:21 +02:00
Marcus Holl
8f1e3dfa8f Make neo command line tests more tolerant wrt to order of args 2018-05-28 13:34:19 +02:00
Alejandra Ferreiro Vidal
53e5c0fe6b add multiple versions verification tests 2018-05-24 14:12:14 +02:00
Alejandra Ferreiro Vidal
3c59ac4454
Merge pull request #143 from alejandraferreirovidal/compatibilityCode
compatibility code for new feature
2018-05-24 14:03:23 +02:00
Marcus Holl
d7cfddd182 git utils: is inside working tree 2018-05-11 15:19:43 +02:00
Marcus Holl
e8ced708f6 fix: apply same script transformation when registering script and when quering
avoids trouble in case of multi line scripts.
2018-05-11 14:21:22 +02:00
Marcus Holl
e61f16abfb Check if inside git repo via rev-parse --is-inside-work-tree
This approach works also in case we are in a subdirectory of the git repo,
e.g. in the closure of a dir statement.

The decission is delegate to git rather than using internal knowledge
about git file names. Well, the directory will be always named '.git',
but nevertheless ...

May endup in a false positive in case we did not clone a repo AND there
is another git repo somewhere upwards in the file system. Maybe some
other git repo is located upstairs containing e.g. the jenkins setup.
The advantage of working also for subdirectories outweights the disadvantage
for the false positive. It is not likely that we have to deal with another
git repo upstairs, since the pipeline script is expected to be located in
the payload git repo. A phantom repo upstairs looks like a pure academical
discussion.
2018-05-11 10:04:18 +02:00
Daniel Kurzynski
e8fb41aab6 Add configuration support for postActions (#135) 2018-05-07 10:50:21 +02:00
Alejandra Ferreiro Vidal
9892bff907 compatibility code for new feature 2018-05-04 11:52:51 +02:00
Alejandra Ferreiro Vidal
407b71441c improve log 2018-04-26 18:02:17 +02:00
Alejandra Ferreiro Vidal
3bf3b49880 improve message and add test 2018-04-26 17:29:26 +02:00
Alejandra Ferreiro Vidal
e7b84345ae add file name and extension to mtaJarLocation
Adds the file name and extension to the mtaJarLocation to make the SAP
Multitarget Archive Builder jar file configurable.
2018-04-26 16:17:54 +02:00
Alejandra Ferreiro Vidal
a8a9281093
Merge pull request #138 from alejandraferreirovidal/addToolDescriptorTest
add ToolDescriptorTest
2018-04-25 17:45:55 +02:00
Alejandra Ferreiro Vidal
ce8f66bd12 add ToolDescriptorTest 2018-04-24 15:05:17 +02:00
Marcus Holl
afcb8f2c3f
Merge pull request #133 from marcusholl/pr/fixPackageDeclaration
Fix wrong package declaration
2018-04-24 09:57:04 +02:00
Marcus Holl
651a11f5d9
Merge pull request #136 from marcusholl/pr/useGroovyInIncreaseReadability
Pr/use groovy in increase readability
2018-04-24 09:48:11 +02:00
Daniel Kurzynski
540e8c36db
Fix merging if default values do not exist (#130) 2018-04-23 13:41:22 +02:00
Marcus Holl
62fee7a63c [refactoring] increase readability: warAction 2018-04-20 12:25:15 +02:00
Marcus Holl
73abb0ee99 [refactoring] increase readability: vmSize 2018-04-20 12:24:37 +02:00
Marcus Holl
39d23d29fd [refactoring] increase readability: deployMode 2018-04-20 12:23:26 +02:00
Marcus Holl
3e64f4a130 Fix wrong package declaration 2018-04-20 10:59:32 +02:00
Alejandra Ferreiro Vidal
c04bc79976 add extension to mtaBuild 2018-04-17 17:35:10 +02:00
Alejandra Ferreiro Vidal
64b45a13c4 review 2018-04-12 14:25:28 +02:00
Alejandra Ferreiro Vidal
2eafecf38d check tool on PATH 2018-04-10 10:26:55 +02:00
Alejandra Ferreiro Vidal
60d1b007a8 add JavaArchiveDescriptor 2018-04-10 10:26:45 +02:00
Alejandra Ferreiro Vidal
f29734c6da validate JAVA if it is in PATH 2018-04-10 10:20:43 +02:00
Alejandra Ferreiro Vidal
66c60b4f26 validate NEO if it is in the PATH or current dir 2018-04-10 10:20:42 +02:00
Alejandra Ferreiro Vidal
74ee6128b7 validate MTA if it is located in current dir 2018-04-10 10:20:42 +02:00
Alejandra Ferreiro Vidal
6f1e2cd205 add verifyTool to mtaBuild and neoDeploy 2018-04-10 10:20:37 +02:00
Alejandra Ferreiro Vidal
f6834c9a42 change file utils to bash 2018-04-10 10:05:26 +02:00
Alejandra Ferreiro Vidal
a1a6467495 remove outdated code from step toolValidate 2018-04-10 10:05:25 +02:00
Alejandra Ferreiro Vidal
dafd48504e refactor toolValidate step to tool utils 2018-04-10 10:05:12 +02:00
Daniel Kurzynski
b29de61f3c Fix referencing script in setVersion (#128)
In order to use the configuration the script needs to be forwarded to

* Fix reference to script in tests and steps
2018-04-05 11:36:51 +02:00
Christopher Fenner
b08d26f5fd
Merge pull request #4 from SAP/master
get changes from master
2018-04-05 09:06:09 +02:00
Daniel Kurzynski
fe4707faeb
Improve Docker options configuration and forward from mavenExecute (#123) 2018-03-29 14:13:11 +02:00
Ramachandra Kamath Arbettu
aa681dd166 Fix the syntax error in artifactSetVersion step (#127)
* Update artifactSetVersion.groovy
* Fix tests for artifactSetVersion
2018-03-28 21:38:30 +02:00
Marcus Holl
c8fdbcf263
Merge pull request #124 from IKirilova/master
generate mta.yml from package.json and given applicationName
2018-03-23 10:28:45 +01:00
Irina Kirilova
f70ae7f986 rework after code review 2018-03-21 13:07:26 +01:00
Irina Kirilova
29da70fd72 generate mta from package.json and given applicationName 2018-03-15 14:21:27 +01:00
Christopher Fenner
2bd7ffb529
fix tests 2018-03-14 15:58:16 +01:00
Christopher Fenner
3524f3cade
fix tests 2018-03-14 15:55:56 +01:00
Christopher Fenner
3ca1b6ac12
fix tests 2018-03-14 15:53:22 +01:00
Christopher Fenner
84ee9f2e39
fix test case 2018-03-14 15:45:49 +01:00
Christopher Fenner
cb9b8e6360
add tests 2018-03-14 15:44:04 +01:00
Marcus Holl
9529954acd Disable tool validation inside neoDeploy and mtaBuild
We know about two issues:

1.) groovy based file systems checks seems to be executed on Jenkins
    master even if there is a node which is dispatched to a slave.
2.) Environment variable contained in the value of a provided
    variable are not expanded. Example: In case we describe neoHome like
    "$JENKINS_HOME/tools/neo" we do not expand $JENKINS_HOME. Hence the
    file exists check for file '$JENKINS_HOME/tools/neo' fails.
2018-03-08 11:23:56 +01:00
Marcus Holl
840f93208c Merge tag 'mtaMerge2' into HEAD 2018-03-06 17:24:58 +01:00
Marcus Holl
86ab0e04c3 Merge remote-tracking branch 'mholl/pr/javaHomeValidationInsideNeoDeploy' into HEAD 2018-03-06 17:24:31 +01:00
Marcus Holl
690e59f4d2 erge remote-tracking branch 'mholl/pr/javaHomeValidationInsideMtaBuild' into HEAD 2018-03-06 17:16:21 +01:00
Marcus Holl
3cafd0b6d5 Validating mta jar inside mtaBuild 2018-03-06 16:53:14 +01:00
Marcus Holl
3bc53b906f Make test more tolerant 2018-03-06 16:50:03 +01:00
Marcus Holl
b8760201c7 Emit log message in case tool validation is skipped. 2018-03-06 16:44:11 +01:00
Marcus Holl
d93b865f8d java home validation inside mtabuild 2018-03-06 16:44:11 +01:00
Marcus Holl
9c544bb6e0 Make test more tolerant 2018-03-06 16:28:01 +01:00
Marcus Holl
23e6e87b75 Validation of neo toolset inside neoDeploy 2018-03-06 16:12:53 +01:00
Marcus Holl
bc9298738b Make validation of shell calls more tolerant.
Needed in order to deal with new shell calls wrt 'which neo.sh'.
2018-03-06 16:02:49 +01:00
Marcus Holl
1c45b043e5 java home validation inside neoDeploy 2018-03-06 15:37:52 +01:00
Marcus Holl
048e004ca7 Make validation of shell calls more tolerant.
Needed in order to deal with new shell calls wrt 'which neo.sh'.
2018-03-06 15:37:52 +01:00
Florian Wilhelm
f6c71a8484 Use executeMaven step for artifact versioning (#114)
* Execute Maven inside Docker container
* Fix test
2018-03-06 13:28:57 +01:00
Florian Wilhelm
ff46bb0f00 Make commit of new version optional in artifactSetVersion step (#112)
* Make commit of new version optional in `artifactSetVersion` step

You might not want to add a new commit for each version, when versions
are automatically created. This commit makes this feature optional, but
enabled by default to maintain API compatibility.

* Set `gitCommitId` if null

* Improve documentation of `commitVersion` parameter

* Allow to operate in a code checkout without `.git` directory
2018-03-05 09:04:53 +01:00
Florian Wilhelm
f18f11fafe Use UTC time zone for artifact version time stamp (#111)
By using UTC, we avoid potential issues when development happens in
different time zones. Also, daylight saving time does not exist in UTC.
2018-03-02 16:35:35 +01:00
Christopher Fenner
d10b94a166
Update SetupCommonPipelineEnvironmentTest.groovy 2018-03-02 10:57:50 +01:00
Christopher Fenner
e38eda33a7
Update DockerExecuteTest.groovy 2018-03-02 10:55:27 +01:00
Christopher Fenner
83d75e99b7
Update DockerExecuteTest.groovy 2018-03-02 10:54:50 +01:00
Christopher Fenner
76fd77f907
Update ChecksPublishResultsTest.groovy 2018-03-02 10:53:46 +01:00
Christopher Fenner
3ed2d64195
Update ArtifactSetVersionTest.groovy 2018-03-02 10:53:09 +01:00
Christopher Fenner
a54e1a7611
use new rules 2018-02-28 13:12:03 +01:00
Christopher Fenner
158a60aecc
use new rules 2018-02-28 13:11:09 +01:00
Christopher Fenner
4fcc911e6c
use new rules 2018-02-28 11:55:19 +01:00
Christopher Fenner
0ba1a2c594
add JenkinsEnvironmentRule 2018-02-28 11:54:52 +01:00
Christopher Fenner
be26c8dc1e
add JenkinsStepRule 2018-02-28 11:54:39 +01:00
Marcus Holl
efafd9a44a [refactoring] resolve data inside merge (#101) 2018-02-28 11:42:19 +01:00
Christopher Fenner
9d070767fc
remove duplicate class 2018-02-26 09:03:55 +01:00
Alejandra Ferreiro Vidal
e7bf3b1b0f mtaJarLocation as step configuration 2018-02-20 12:02:33 +01:00
Alejandra Ferreiro Vidal
5256494ffa
Merge pull request #88 from marcusholl/pr/useSetsInsteadOfLists
Replace usage of lists for denoting keys by sets.
2018-02-20 11:54:30 +01:00
Marcus Holl
5fe76eb9dc Replace usage of lists for denoting keys by sets.
The characteristics of a list are
  o the order of the entries is significant
  o duplicates are allowed

The characteristics of a set are
  o the order is not significant
  o duplicates are not allowed.

When describing keys for a step the characteristics of a
set applies here, whereas the characteristics of a list does
not apply.
2018-02-19 12:53:08 +01:00
Christopher Fenner
26bbee5fb4
use perfReport step 2018-02-19 10:26:50 +01:00
Alejandra Ferreiro Vidal
c12af7b8d5 add custom configuration test 2018-02-19 09:40:14 +01:00
Alejandra Ferreiro Vidal
ac6cc2aa60
Merge pull request #79 from alejandraferreirovidal/cleanUpNeoDeploymentTest
clean up NeoDeploymentTest
2018-02-19 09:34:15 +01:00
Alejandra Ferreiro Vidal
0510e087b8
Merge pull request #82 from alejandraferreirovidal/addTests
improve tests coverage
2018-02-16 17:26:55 +01:00
Alejandra Ferreiro Vidal
b243ce4e5c improve test coverage 2018-02-16 17:15:41 +01:00
Alejandra Ferreiro Vidal
f156509484
Merge pull request #78 from alejandraferreirovidal/mtaBuildTest
create test files before class - MTABuildTest
2018-02-16 17:09:27 +01:00
Christopher Fenner
98b5590d53
Merge branch 'master' into publishTestResults 2018-02-16 10:32:24 +01:00
Christopher Fenner
be5b5ec9fa
Merge pull request #58 from CCFenner/publishCheckResults
add new step checkResultsPublish
2018-02-16 10:30:59 +01:00
Alejandra Ferreiro Vidal
0703147802 create test files before class 2018-02-14 14:36:50 +01:00
Alejandra Ferreiro Vidal
b813dc4b42 add missing package 2018-02-14 11:32:52 +01:00
Alejandra Ferreiro Vidal
aea1dbfc9f String as String not GString 2018-02-13 16:38:09 +01:00
Alejandra Ferreiro Vidal
0a8d096a5e reduce scope of neoHome tests 2018-02-13 15:00:00 +01:00
Alejandra Ferreiro Vidal
2cb22ebf4d remove duplicate assertion 2018-02-13 14:59:48 +01:00
Alejandra Ferreiro Vidal
691257a458 refactor NEO_HOME 2018-02-13 14:59:19 +01:00
Alejandra Ferreiro Vidal
d36288dabf refactor host and account configuration 2018-02-13 14:59:08 +01:00
Alejandra Ferreiro Vidal
2e3d1ec488 create test files before class 2018-02-13 14:55:57 +01:00
Alejandra Ferreiro Vidal
a9895bab7d simplify workspace path 2018-02-13 14:43:07 +01:00
Alejandra Ferreiro Vidal
724cf64832 create test files before class 2018-02-13 14:32:54 +01:00
Alejandra Ferreiro Vidal
874dddfe33 String as String not GString 2018-02-12 16:00:05 +01:00
Alejandra Ferreiro Vidal
72f65a90bc make script private 2018-02-12 15:59:04 +01:00
Alejandra Ferreiro Vidal
56fe9488ff create test files before class 2018-02-12 15:56:48 +01:00
Alejandra Ferreiro Vidal
df9a3b3c14 improve log 2018-02-12 10:03:35 +01:00
Alejandra Ferreiro Vidal
39f982c598 refactor home to make it more readable 2018-02-12 10:03:35 +01:00
Alejandra Ferreiro Vidal
3ef6f2de80 remove duplicate code 2018-02-12 10:03:21 +01:00
Christopher Fenner
60691dde5b
Merge branch 'master' into publishCheckResults 2018-02-12 08:37:15 +01:00
Alejandra Ferreiro Vidal
5bfb68d24a move utils test classes to com.sap.piper folder
The folder com.sap.piper was created and the corresponding test classes
were not moved. Furthermore, a new UtilsTest class was created when this
test class did already exist, and the same tests were already
implemented, also this new test class uses the lesfurets testing
framework when it is not needed, so this new test class is removed and
the test class that there was before is kept.
2018-02-09 18:08:11 +01:00
Christopher Fenner
3f5d0c74db
use Integer for step invocation 2018-02-09 12:15:26 +01:00
Christopher Fenner
ddf1e609e4
rename step under test 2018-02-08 23:48:49 +01:00
Christopher Fenner
91e0b3294e
rename test script variable name 2018-02-08 16:38:55 +01:00
Christopher Fenner
b443ac0e41 Merge branch 'master' into publishTestResults5 2018-02-08 14:14:07 +01:00
Alejandra Ferreiro Vidal
9dafdd1cc0 mtaBuild with new config framework 2018-02-08 13:26:48 +01:00
Christopher Fenner
ab80004356 remove unused test file 2018-02-08 10:58:56 +01:00
Christopher Fenner
c6300f4570 correct handling of parameter maps 2018-02-08 10:50:11 +01:00
Christopher Fenner
ebedbb01e0 add test for default thresholds 2018-02-08 10:43:06 +01:00
Christopher Fenner
be41b71b84
Merge branch 'master' into publishCheckResults 2018-02-08 08:53:04 +01:00
Christopher Fenner
157c9cacfe
Merge pull request #66 from CCFenner/deepConfigMerge
extend config merger to handle deep config structures
2018-02-08 08:50:20 +01:00
Christopher Fenner
3bf3a2a9f5
Update ConfigurationMergerTest.groovy 2018-02-07 22:53:47 +01:00
Oliver Nocon
fbd03a88da
Step for automatic versioning (#65)
It contains:

* versioning step artifactSetVersion
* versioning implementation for Maven & Docker
* enhancements to commonPipelineEnvironment
* extended default configuration
* new utils object for git-related tasks
* automated tests incl. new Rules and resources
* incorporated PR feedback
* step documentation
2018-02-07 13:17:33 +01:00
Christopher Fenner
6300008fe2 adopt tests 2018-02-07 12:01:46 +01:00
Alejandra Ferreiro Vidal
42db55d5a5 remove public when not needed
See: https://github.com/SAP/jenkins-library/blob/master/CONTRIBUTING.md#do-not-use-a-visibility-modifier-for-public-classes-and-methods
2018-02-06 15:57:26 +01:00
Alejandra Ferreiro Vidal
334251ec82 remove curly braces when not needed
See: https://github.com/SAP/jenkins-library/blob/master/CONTRIBUTING.md#do-not-use-curly-braces--for-variables-or-variableproperty
2018-02-06 15:57:26 +01:00
Alejandra Ferreiro Vidal
615f8deb1d add blanks to keep format 2018-02-06 15:57:26 +01:00
Alejandra Ferreiro Vidal
ae66a5cbca add new lines to keep format 2018-02-06 15:57:26 +01:00
Alejandra Ferreiro Vidal
4360636609 add sed test
Removes straightForwardTest that has not a clear scope since it test all
that it is tested in the other tests.
Adds sed test.
Removes duplicated sed assertions.
2018-02-06 15:57:25 +01:00
Alejandra Ferreiro Vidal
69d0050e0c remove blanks 2018-02-06 15:57:25 +01:00
Alejandra Ferreiro Vidal
cafa0a703b format String as String not GString
See: https://github.com/SAP/jenkins-library/blob/master/CONTRIBUTING.md#use-single-quotes-for-strings-and-constants
2018-02-06 15:57:25 +01:00
Alejandra Ferreiro Vidal
8075157ea2 rename mtaHome with mtaJarLocation 2018-02-06 15:57:25 +01:00
Alejandra Ferreiro Vidal
868d13749c add mtaJarLocation from environment test
Adds a test to check if the mtaJarLocation is read from the environment
and removes all duplicate assertions.
2018-02-06 15:57:25 +01:00
Alejandra Ferreiro Vidal
5d60bc8199 add environment PATH test
Adds an unit test to test that the environment PATH is set and removes
duplicate PATH assertions.
2018-02-06 15:57:25 +01:00
Alejandra Ferreiro Vidal
7f3f76a8ad remove duplicated mtarFilePath assertions
mtarFile Path must be checked only when it is in the scope of the unit
test.
2018-02-06 15:57:24 +01:00
Alejandra Ferreiro Vidal
4aa4a1d2f5 remove unused cpe 2018-02-06 15:57:24 +01:00
Alejandra Ferreiro Vidal
9cb6f53678 remove unused code 2018-02-06 15:56:57 +01:00
Christopher Fenner
02c983e374
remove wrapping RuleChain 2018-02-06 09:53:27 +01:00
Christopher Fenner
edf3deaa9c rename method 2018-02-05 20:31:30 +01:00
Christopher Fenner
88d09eee63 filter by keyset 2018-02-05 19:54:04 +01:00
Christopher Fenner
8c02b8bc86 mock step configuration change 2018-02-05 16:02:59 +01:00
Christopher Fenner
87de7417ca add further tests 2018-02-05 13:48:39 +01:00
Christopher Fenner
853bc963c0 add additional test case 2018-02-05 13:33:15 +01:00
Christopher Fenner
bf1a2a98e0 remove debug log 2018-02-02 15:08:22 +01:00
Christopher Fenner
64046b6de2 rename step to checksPublishResults 2018-02-02 14:50:26 +01:00
Christopher Fenner
5dfc433601 add more test cases 2018-02-02 14:45:45 +01:00
Christopher Fenner
6337134607 add test cases 2018-02-02 12:25:18 +01:00
Marcus Holl
87f899a731 Merge remote-tracking branch 'github/master' into HEAD 2018-02-02 09:34:27 +01:00
Christopher Fenner
e92c233913 adapt new test rules 2018-02-02 09:33:39 +01:00
Christopher Fenner
192d96d082 add MapUtils 2018-02-02 09:30:31 +01:00
Christopher Fenner
41e85c035c extend config merger to handle deep config structures 2018-02-02 09:05:25 +01:00
Christopher Fenner
dc44fdba58 extend config merger to handle deep config structures 2018-02-01 12:16:21 +01:00
Alejandra Ferreiro Vidal
4f624d5aea add error rule as common rule 2018-02-01 10:11:37 +01:00
Alejandra Ferreiro Vidal
485eff7175 bugfix absolute path 2018-01-31 18:53:14 +01:00
Marcus Holl
c55673daea
Merge pull request #56 from marcusholl/pr/rules
Provide Rule chain for the common rules used as prerequisite in almost all tests
2018-01-31 10:34:14 +01:00
Christopher Fenner
9d4a9304db add further test cases 2018-01-30 15:26:54 +01:00
Christopher Fenner
653a66b841 add unit test 2018-01-30 13:33:28 +01:00
Marcus Holl
f52cbbe36a Fix wrong backward compatibility handling for deployHost, deployAccount. 2018-01-29 15:11:02 +01:00
Marcus Holl
ef0b1bd9dd [refactoring] Rule handling
Starting point for that refactoring: it turned out that the tests
was not independent. The DefaultValueCache which is a singleton
keeps the status over various tests. Success of test execution depends
on the order test execution.

We have now
  * a dedicated rule for resetting the default value cache
  * JenkinsConfiguration rule (which already provided facilities for
    dealing with the configuration) has been replaced by a readYaml rule.
    From the PipelineUnit test framework we get already a handler for
    libraryResource, which is also part of the setup of the default
    values.
  * An auxiliar class which combines the
      * JenkinsSetupRule (registers the lib)
      * JenkinsReadYamlRule (provides facilities for Yaml parsing)
      * JenkinsResetDefaultValueCacheRule (cleans up the DefaultValueCache)
    into a rule chain. By using this rule chain we ensure that our
    setup OK (piper lib registered, and default config can be setup in
    a clean way).
2018-01-29 09:42:23 +01:00
Marcus Holl
0d87348c21 Replace JenkinsConfigRule by more speaking readYaml rule
and reset default cache rule.
2018-01-29 09:42:23 +01:00
Marcus Holl
8e3e60f1d5 Avoid interdependencies between tests 2018-01-26 15:39:04 +01:00
Marcus Holl
9a96acff57 change default for neo toolset from neo to neo.sh
The bash script is named 'neo.sh', not 'neo'. 'neo' as default will not work
despite somebody takes extra action to make it work.
2018-01-25 16:41:27 +01:00
Marcus Holl
bc2fb93551 Use dockerExecute inside neoDeploy 2018-01-25 16:41:27 +01:00
Marcus Holl
1ff46861e0 Introduce new config framework into neoDeploy 2018-01-25 16:41:26 +01:00
Marcus Holl
2001816318 Remove unused variables inside test 2018-01-25 16:41:22 +01:00
Oliver Feldmann
ec9895ec3e Improve fileExists mock
Before this commit the fileExists mock was not doing the same as the
real fileExists method. To stay close to reality we changed it construct
the absolute path and check for that when the fileExists method is
called.
Refactored to archiveName instead of archivePath, as this makes more
sense now.
2018-01-25 08:48:38 +01:00
Oliver Feldmann
58d3907093 Use fileExists to check whether archivePath really exists
When running on a slave we have to use the Pipeline method fileExists,
using the File class' exist on the absolute path fails.
The neo deployment uses the relative path as well.
The fileExists method is mocked with LesFurets.
2018-01-24 13:11:04 +01:00
Marcus Holl
c9d7cc8856
Merge pull request #53 from marcusholl/pr/testCleanup
Beautify the tests
2018-01-24 11:51:31 +01:00
Marcus Holl
808170b88a Call pipeline steps directly, without using a pipeline snippet 2018-01-24 11:43:25 +01:00
Oliver Nocon
749aa5e7ed
InfluxDB support (#52)
* adding step for writing metrics to InfluxDB including dependencies
* added documentation
* incorporated PR feedback
2018-01-24 09:55:38 +01:00
Thorsten Duda
e8363e9637 introduce JenkinsConfigRule 2018-01-23 15:02:25 +01:00
Marcus Holl
106a8b4693 Make use of JenkinsShellCallRule 2018-01-23 15:02:25 +01:00
Thorsten Duda
1089e192f3 added JenkinsShellCallRule class 2018-01-23 14:51:18 +01:00
Marcus Holl
492d4a1f68 Make use of Jenkins setup and logging rules 2018-01-23 14:51:18 +01:00
Marcus Holl
b9eedda38e
Merge pull request #44 from milkotodorov/master
Neo deploy - Add support for WAR file deployment/rolling-update
2018-01-23 09:42:02 +01:00
Milko Todorov
d9e8128860 Unit test for warAction: rolling-update 2018-01-17 14:01:15 +01:00
Milko Todorov
62b0cae3ac Changing IllegalArgumentException to general Exception
Requested by Oliver Nocon
2018-01-17 11:19:02 +01:00
Milko Todorov
98a0c5b548 Converting parameters names to lower-case
Requested by Oliver Nocon
2018-01-17 11:17:24 +01:00
Marcus Holl
00df52f9f1
Merge pull request #49 from marcusholl/pr/changePiperLibIdentifier
Change piper lib identifier
2018-01-17 09:28:11 +01:00
Milko Todorov
dd4f9a1b1d Exception in case of illegal arguments + tests 2018-01-16 10:54:17 +01:00
Marcus Holl
a794e9270b remove printing the callstack
I guess nobody is interested in the callstack printed into the log
during the tests.
2018-01-16 09:49:19 +01:00
Marcus Holl
2a7a35db29 [refactoring] Remove redundant code 2018-01-16 09:43:24 +01:00
Marcus Holl
998abed377 Switch library identifier to piper-library-os
this identifier is commonly used.
2018-01-15 15:06:02 +01:00
Milko Todorov
d3d35cc140 Unit tests for the new deployMode in NeoDeploy 2018-01-12 15:56:29 +01:00
Milko Todorov
ced5307eb5 Adjusting UnitTests 2018-01-10 17:40:07 +01:00
Sven Merk
fe89155a04
Initial check-in of lesfurets test improvements (#23)
Adding lesfurets test framwork improvements via helper classes
2018-01-10 10:27:55 +01:00
Marcus Holl
739b77d6ae Add test for dockerExecute results in local execution 2017-12-27 10:10:20 +01:00
Marcus Holl
66a65d3907 Make docker more resilent wrt to environment
We check
  1.) if docker-workflow plugin is installed
  2.) if docker itself is installed on the system hosting Jenkins

If one of the conditions is not fullfilled we try to execute
locally.
2017-12-14 14:53:27 +01:00
Daniel Kurzynski
22ee06dc17 Enable configuration via yaml file + mavenExecute as example (#18)
* Enable configuration via yaml file
* Add documentation 
* Add tests
2017-12-06 12:03:06 +01:00
Oliver Feldmann
f72d93ae2c Remove node from test pipeline
node() is not necessary in the LesFurets unit tests. This is especially
misleading for the pipelineExecute step, as the step itself opens a node
closure when loading a pipeline. If used like this in Jenkins
unnecessary executors will be used.
2017-12-05 13:33:03 +01:00
Marcus Holl
02d9ed6239 Merge remote-tracking branch 'github/master' into HEAD 2017-12-04 11:05:42 +01:00
Marcus Holl
88ac3ae43e Rename externalPipelineExecute to pipelineExecute 2017-12-04 10:51:42 +01:00
Marcus Holl
bbe799fd19 Rename centralPipelineLoad step to externalPipelineExecute 2017-12-04 10:51:42 +01:00
Marcus Holl
67630d829b change naming of parameter holding the path to the pipeline script. 2017-12-04 10:51:42 +01:00
Marcus Holl
13139da01e Use a dedicated node() instead of a temporary directory. 2017-12-04 10:51:42 +01:00
Oliver Feldmann
a6df3b3053 'centralPipelineLoad' unit tests
Mocking with LesFurets. Check that everything is at the right place.
1. Test with only the mandatory parameter 'repoUrl'.
1. Test setting all available parameters.
1. Test with no parameters throws Exception for missing mandatory
parameter 'repoUrl'.
2017-12-04 10:51:42 +01:00
Marcus Holl
d3efa3edb7 [fix] missing quotes in neoDeploy shell exectution
Without proper quotation characters with a special semantics
on shell level (e.g. "${}", "!", """ gets escaped on shell level
before handed over to the neo tool.

neoExecutable is surrounded by double quotes since we may have
shell ${variables} inside the groovy variable.

All other variables (user, host, account, password) are surrounded
by single quotes since we do not expect to be variables used here.

The neoExecutable is
2017-12-01 09:51:54 +01:00
Marcus Holl
a72cd278b4
Merge pull request #5 from marcusholl/pr/piperTestBase
piper test base
2017-11-21 16:42:22 +01:00
Alejandra Ferreiro Vidal
72b185e807 remove closure in withPipeline(p) 2017-11-21 16:27:01 +01:00
Alejandra Ferreiro Vidal
5ca3d39b02 adapt setUp method 2017-11-21 14:27:05 +01:00
Alejandra Ferreiro Vidal
d91d01f0da getMandatoryParameter() unit tests 2017-11-17 14:40:56 +01:00
Marcus Holl
9d59ba16d9 beautify inline script blocks
idents only
2017-11-16 14:09:48 +01:00
Marcus Holl
5757acb15e createPipeline naming improved to defaultPipeline. 2017-11-16 13:50:38 +01:00
Marcus Holl
a64d8e78f1 Make base class working for windows also. 2017-11-16 13:47:00 +01:00
Marcus Holl
98a45bd961 Handling pipeline scripts in base class 2017-11-14 14:02:00 +01:00
Marcus Holl
2c53ade200 Handle shell calls in base class. 2017-11-14 14:02:00 +01:00
Marcus Holl
111a8e8222 Handle echo calls in base class. 2017-11-14 14:02:00 +01:00
Marcus Holl
b5cc4565fc Introduce PiperTestBase class. 2017-11-14 14:02:00 +01:00
kbarnold
26e093f3e4
Merge pull request #1 from marcusholl/pr/handleSpaceWithNeoDeploy
[fix] neo deploy fails with blanks in path of the deployable.
2017-11-13 13:26:57 +01:00
Marcus Holl
7f36ca0f74 Use regex for asserting sed command
instead of having two checks, one for the first part of the command and one for asserting
the trailing file name at the end of the command.
2017-11-13 11:22:57 +01:00
Marcus Holl
9d61638eb4 [fix] sed'ing timestamp during mta build fails with blanks in file path. 2017-11-13 11:22:55 +01:00
Marcus Holl
083cb1bcde [fix] neo deploy fails with blanks in path of the deployable. 2017-11-13 10:51:26 +01:00
Oliver Nocon
47c195805f Initial version of piper-lib. 2017-11-10 16:30:52 +01:00