1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-12 10:55:20 +02:00
Commit Graph

1059 Commits

Author SHA1 Message Date
Oliver Nocon
7de42230e0
add step to create a GitHub issue (#2481)
* add step to create a GirHub issue

* add groovy library step

* Update githubcreateissue.yaml

Co-authored-by: Sven Merk <33895725+nevskrem@users.noreply.github.com>
2020-12-21 17:13:16 +01:00
Oliver Nocon
cf7ca8f791
add step to create a GitHub comment (#2479)
* add step to create a GitHub comment

* add docs

* mandatory parameters

* add command

* Update githubCommentIssue.go

* add groovy library step

Co-authored-by: Sven Merk <33895725+nevskrem@users.noreply.github.com>
2020-12-21 16:21:07 +01:00
Srinikitha Kondreddy
d9a1355220
Fix typo (#2436) 2020-12-14 15:02:49 +01:00
Marcus Holl
17bdbe2ef4
piperExecuteBin: provide credentials directly without indirection into config (#2437)
`piperExecuteBin` is called with a credentials list. Each list entry is a map consisting of
* the type of the credential (e.g. usernamePassword, token)
* the identifier which is used for resolving the credential.
* a list of environment variables which holds the resolved credentials.

Inside `piperExecuteBin` the id was resolved against the config and the result was used for resolving the credentials against the jenkins-credentials-plugin.

With this change here we introduce another key for the map mentioned above:
* resolveCredentialsId

When this key is provided with value `false` we do not resolve the credentials-id from the config. In that case the id is directly used for resolving the credential again the jenkins-credentials-plugin.
2020-12-07 08:54:49 +01:00
Stephan Aßmus
e48b5c588e
Include configFile in pipelineConfigAndTests stash (#2424) 2020-12-01 12:04:27 +01:00
Christopher Fenner
eff1933a61
refactor(checks): use warnings-ng plugin (#2398)
* use recordIssues

* fix c&p issue

* simplify code

* fix

* add quality gates

* change qgates to TOTAL_HIGH

* remove pattern for tasks

* use TOTAL_ERROR for checkstyle

* fix indent

* use deprecated threshold parameters

* debug messages

* transform legacy qgates

* fix

* adjust test cases

* correct qgates

* correct legacy thresholds

* fix typo

* remove deprecated defaults

* add test case

* log use tool

* add notification

* remove deprecated defaults

* remove deprecated parameter

* adjust legacy threshold message

* add q gates on error and high for all check tools

* Apply suggestions from code review

* adjust test cases

* remove duplicate assert

* Fail if aggregation is still defined

* update docs

* fix indent

* Update documentation/docs/steps/checksPublishResults.md

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

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-11-25 15:39:33 +01:00
Florian Wilhelm
9d5bd8b09b
Remove references to cloud sdk (#2418)
Not required anymore as Cloud SDK was merged into General Purpose Pipeline
2020-11-23 17:48:53 +01:00
Stephan Aßmus
cbd932a5eb
dockerExecute: Wrap all code in docker.withRegistry() (#2384)
* wrap all in docker.withRegistry()

* Renamed parameter

No backwards alias, since it never worked before.

* Fix code and tests

* Rename parameter as per review

* Rename parameter as per review

Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-11-17 14:53:09 +01:00
Kevin Stiehl
dfab156427
Feature/approle secret id rotation (#2311)
* add new step vault secret

* add debug log

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
2020-11-17 13:49:31 +01:00
Stephan Aßmus
0491bf3712
Always use artifactPrepareVersion (#2360)
artifactSetVersion was documented as being "deprecated" since a while, but was still used.
2020-11-16 16:38:17 +01:00
Christopher Fenner
81c8553d6a
refactor(hadolint): implement step in GO (#1169)
* initial commit of yaml file

* initial commit for HaDoLint in GO

* add helper function to load file from url

* load config file

* write report information to disk

* comment the code

* refactor groovy code

* remove download function from FileUtils

* use http.Downloader

* rename step files

* update generated files

* update generated files

* remove duplicate commands

* add credentials for config url

* add generated test file

* reuse piperExecuteBin functions

* correct step name

* update go step

* deactivate test

* fix import

* use differing go step name

* rename step

* correct result publishing

* correct command name

* expose tls insecure flag

* hand through error

* disable tls verification

* fix tls disabling

* use credentials

* mow

* reformat

* add qgate only if set

* correct report name

* remove old defaults

* add qgate to defaults

* handle report name

* restore default

* remove unused step config

* use piperExecuteBin

* remove obsolete type

* add test cases

* remove groovy tests

* move client parameter handling to run function

* use custom interfaces and mockery

* remove commented code

* correct struct names

* rename parameter dockerfile

* add further asserts

* cleanup

* change file permission to read/write

* remove tokenize

* add further comments

* init http client only if necessary

* add todo

* Revert "rename parameter dockerfile"

This reverts commit 2a570685b8.

* add alias for dockerfile parameter

* correct test case

* Apply suggestions from code review

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

* add comment about mock assertions

Co-authored-by: Stephan Aßmus <stephan.assmus@sap.com>
2020-11-16 15:14:54 +01:00
Florian Wilhelm
647e1ef0bd
Add deployment to performance tests stage and enable stage (#2370)
Co-authored-by: Kevin Hudemann <kevin.hudemann@sap.com>
2020-11-13 16:31:45 +01:00
Marcus Holl
3e3a29ffd2
Support additional volume mounts for cm related steps (#2287)
* Fix asserts

* support additional volume mounts for cm related steps
2020-11-13 13:45:30 +01:00
Kevin Hudemann
8fd6927854
Add mavenExecuteIntegration, mavenExecuteStaticCodeChecks, npmExecuteLint and npmExecuteScripts to piperPipelineStagePRVoting (#2352)
This change adds the steps mavenExecuteIntegration, mavenExecuteStaticCodeChecks,
npmExecuteLint and npmExecuteScripts to the stage piperPipelineStagePRVoting.
2020-11-12 09:25:44 +01:00
Daniel Mieg
712c568087
Create groovy step for abapEnvironmentCreateSystem (#2303)
* Create groovy step

* add to pipeline

* add includeAddon

* Adapt docu

* Adapt groovy test

* adapt stage addonBuild

* add comma

* Add to docu

* Upper case spelling

* Update docu

* adapt docu
2020-11-11 17:08:24 +01:00
Stephan Aßmus
115cfb5bae
Run nexusUpload in stage Promote (#2349) 2020-11-11 16:32:23 +01:00
Florian Wilhelm
0356f13853
Improve error message for legacy cloud sdk config (#2348) 2020-11-11 14:47:55 +01:00
Marcus Holl
d327c2e061
Revert "Avoid CPS serialization issue in setupCPE (#2261)" (#2305)
This reverts commit c9b50d7f10.
2020-11-11 10:44:49 +01:00
Daniel Mieg
2c432124fc
Unify strategy spelling (#2345)
* Update abapEnvironmentPipelineStageCloneRepositories.groovy

* Adapt test
2020-11-10 16:45:16 +01:00
Stephan Aßmus
87e8d5d160
Extend the legacy config check for "required" config keys (#2332) 2020-11-10 14:18:37 +01:00
Srinikitha Kondreddy
0234e4908c
Invalidate cache for neo deployments (#2209)
* Add additional parameters for invalidating cache

* Fetch bearer token

* Fetch x-csrf token

* Add echo for testing

* Add echo

* Add another echo

* Check status

* Debug

* Clean up

* Throw exception

* Code review changes

* Review changes

* Add test

* Fix tests

* Fetch bearer token

* Fetch x-csrf token

* Add echo for testing

* Add echo

* Add another echo

* Check status

* Debug

* Resolve conflicts

* Resolve conflicts

* Code review changes

* Review changes

* fix conflicts

* Fix indent

* Add new parameter to define portal landscape region

* Add default value for new param

* Fix test

* Remove example

Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>

* Check cache invalidation for html5 apps

* Add nesting

Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>

* Add docu for invalidating cache for html5 apps (#2306)

* Add docu for invalidating cache for html5 apps

* Improve content

* Docu review changes

* Remove heading

Co-authored-by: Sarah Lendle <44202907+SarahLendle@users.noreply.github.com>

* Update documentation/docs/steps/neoDeploy.md

Co-authored-by: Sarah Lendle <44202907+SarahLendle@users.noreply.github.com>

Co-authored-by: Sarah Lendle <44202907+SarahLendle@users.noreply.github.com>

Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>
Co-authored-by: Sarah Lendle <44202907+SarahLendle@users.noreply.github.com>
2020-11-09 12:15:00 +01:00
Florian Wilhelm
73a2c256cc
Move legacy config check to step so it can be reused in other pipelines (#2325) 2020-11-09 10:15:43 +01:00
Stephan Aßmus
14d7196495
Accumulate config validation errors (#2323)
* Instead of letting the pipeline fail for the first config validation error, accumulate all errors and output them to the log, then fail.
* Beginnings of a resource for validating a config.yml migrated to the GPP. Can be configured in the general section:
```yaml
general:
  legacyConfigSettings: 'com.sap.piper/pipeline/cloudSdkToGppConfigSettings.yml'
```
2020-11-06 10:17:26 +01:00
Gordon Franke
a19cbd63ee
change slack color to reflect all states (#2320)
I have used the colors from blue ocean.

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-11-05 14:16:00 +01:00
Stephan Aßmus
8007a1a6c6
New step gatlingExecuteTests, used in Performance stage (#2298)
Co-authored-by: Daniel Kurzynski <daniel.kurzynski@sap.com>
2020-11-03 17:42:02 +01:00
Kevin Hudemann
f13ccabe1e
Add preDeploymentHook to multicloudDeploy step (#2308) 2020-11-03 16:46:33 +01:00
Oliver Feldmann
5b5f1fe873
Remove closure in switch case (#2302)
Before this commit, if the closure of the switch case is executed a
CpsCallableInvocation exception is thrown.
2020-11-03 12:50:00 +01:00
Dominik Lendle
c6afd7696b
Abap pipeline extension for cloneGitRepo & checkoutBranch to be used (#2004)
* 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

* Add cloneGitRepo & checkoutBranch steps

* Tests added

* Docu added

* docu changes

* remark changes

* Class name changed

* minor changes

* Test added for prepare system stage

* Review changes

* Tests

* Step order tests

* Step order tests

* Step order tests

* Step order tests

* strategy parameter tests

* configHelper import added

* Default value for strategy added and remove pull config check

* corrected stage default

* Tests added

* changes in TestConfig

* Tests adapted for no prepare system stage

* tests changed

* changed tests

* input added

* changed tests

* changed tests

* changed tests

* commonPipeline removed

* add input register

* remove step key

* remove return

* remove comment

* correct method usage

* CodeClimate Fixes

* PR fixes

* addonBuild rename

* removed trailing spaces

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>
2020-11-03 10:16:57 +01:00
Marcus Holl
c9b50d7f10
Avoid CPS serialization issue in setupCPE (#2261)
* Avoid CPS serialization issue in setupCPE

When handing over an instance of SCMInfo we got a
CPS serialization issue. Hence we don't hand over
that instance any more

  o git commit id is resolved with exising git tooling
  o git branch is handed over as parameter to setupCPE
2020-11-02 11:23:34 +01:00
Florian Wilhelm
efa85a0f0e
Allow npm install in e2e tests (#2281)
Remove hard-coded install: false in npmExecuteScripts call to allow the pipeline to configure the step according to how it is right for that pipeline.
2020-10-30 11:56:29 +01:00
Daniel Mieg
c2bd05fb3d
Add option to include a deletion prompt for Steampunk systems (#2198)
* Test out delete confirmation

* Second try

* Add confirmation for Integration Tests system

* Fix defaults

* Change default

* Adapt text

* Change default handling

* Adapt addIfEmpty

* Add pipeline test

* Add tests
2020-10-29 10:30:50 +01:00
Stephan Aßmus
d1fedd9ba8
Remove "onlyInProductiveBranch" check (#2253) 2020-10-28 17:08:38 +01:00
Srinikitha Kondreddy
e0c09992ce
Read properties from plain text (#2228)
* Read properties from plain text

* Adapt changes

* Support for properties provided as text (#2241)

* Fix indent and clean up exceptions

Co-authored-by: Marcus Holl <marcus.holl@sap.com>
2020-10-27 10:52:24 +01:00
Christopher Fenner
bdfe90ed49
feat(hadolint): enable authentication when fetching config file (#2225)
* use httpRequest to fetch config file

* set default

* provide authentication for config url

* adjust test case
2020-10-23 13:57:22 +02:00
Marcus Holl
4f9bc698f9
ABAP deploy to front end server via existing fiori upload facilities (#1939)
The approach used up to now did not (... never) work since the uploaded content was always assigned to the `$TMP` package. In the meanwhile there is some fiori tooling available for managing such uploads.

Now we re-use this fiori tooling.

Co-authored-by: Oliver Feldmann <oliver.feldmann@sap.com>
2020-10-21 12:04:11 +02:00
Fabian Reh
586044192c
feat(Gitops): new step to update deployment (#2178)
* kanikoExecute: improve user experience

* ensure proper tags

* update permissions

in case a container runs with a different user
we need to make sure that the orchestrator user
can work on the file

* update permissions

* ensure availablility of directories on Jenkins

* (fix) clean up tmp dir in test

* add resilience for incorrect step yaml

* incorporate PR feedback

* Adds piper step to update deployment configuration in external git repository.

https://github.wdf.sap.corp/ContinuousDelivery/piper-ita/issues/21

* Adds handling of branchName as an optional parameter

* Update resources/metadata/gitopsUpdateDeployment.yaml

Feedback about description

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

* Adapt to interface guide

* Refactors to GitopsExecRunner

* Refactors to GitopsExecRunner in test

* Removes unnecessary mocked methods

* Adds tests for git utils

* Adds new step to CommonStepsTest.groovy

* Updates description from yaml

* Restricts visibility of methods and interfaces
Adds comments where necessary

* Updates comments

* Fixes URL name

* updates description

* updates generated file

* Fixes compile issue in CommonStepsTest.groovy

* Updates long description

* Updates test to run green on all kind of OS

* Removes global variables from tests

* Default branch: master

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>

* Typo in Hierarchy

Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>

* Refactors test to allow parallel execution

* Renames utility variable in gitopsUpdateDeployment.go

* Renames error variables in gitopsUpdateDeployment.go

* simplified parameters for kubectl

* Refactors util classes to use parameters rather than global variables

* makes username and password mandatory

* remove unnecessary mandatory flag

* remove new methods from mock that are not necessary

* replaces with EqualError

* replaces with NoError

* update generated file

* refactor tests

* refactor tests

* make tests parallel executable

* parallel execution of tests

* Refactors interfaces to stop exposing interfaces

* Feedback from PR

* Simplifies failing mocks

* Renames variables and interfaces

* Fixes error messages

* shorten variable names

* Renames unused parameters in tests

* Cleanup nil parameters

* Typo

* Wrap errors and remove unnecessary logs

* Remove containername and filePath from GENERAL scope

* correct generated file

* corrects expected error messages

Co-authored-by: OliverNocon <oliver.nocon@sap.com>
Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
2020-10-20 09:05:17 +02:00
Roland Stengel
1488c4d355
Fiori Scenario from Neo to CF (#2164)
* Fiori Scenario from Neo to CF

* Fiori Scenario from Neo to CF - Review
- error on unknown deploy target
- codeclimate
- remove obsolete sample files

* Minor language changes
2020-10-15 13:29:52 +02:00
Marcus Holl
5f5372aa6f
Revert "allow multicloud deployment to run in current workspace (#2031)" (#2137)
This reverts commit 32fd89c664.

Commit mentioned above has been merged in order to circumvent
the issue which has been resolved by commit 0a17ed56. Since this
issue is now resolved and since there is no other known use case
for running deployments explicitly in parallel we decided to remove
that flag again.
2020-10-09 14:52:07 +02:00
Tom Kiemes
9ffe52d1f4
Add a milestone for Confirm stage (#2087)
This commit will prevent abortion of older builds which are waiting in the Confirm stage,
if a newer build fails in the last stage before the Confirm stage.

Example: If the 'Compliance' stage of the general purpose pipeline (piperPipeline.groovy) fails,
it will abort all former builds which are waiting in the 'Confirm' stage.

The milestone function is called without an explicit ordinal since people might use the stage
on different positions within their pipeline. When no ordinal is given, the last milestone ordinal
value will be increased by 1.

Note: Confirming a build will still abort all older builds waiting at the Confirm stage.
2020-10-07 10:56:25 +02:00
Oliver Feldmann
19f45aa687
Move setting git info in cpe from stage init to setupCPE step (#2083)
* Move setting git info in cpe

Everything cpe related should be done in setupCommonPipelineEnvironment.
Thus a new parameter was introduced to accept the scmInfo object
returned by a checkout.

* Improve documentation
2020-10-05 12:50:03 +02:00
Stephan Aßmus
6379c25409
Forward config-related params to setupCommonPipelineEnvironment (#2117) 2020-10-05 12:12:06 +02:00
Marcus Holl
b2b4278b34
Provide Additional pod properties for dockerExecuteOnKubernetes (#2051)
Provide additional pod properties for dockerExecuteOnKubernetes

Co-authored-by: Kay Wegner <kay.wegner@sap.com>
2020-10-02 12:56:16 +02:00
Marcus Holl
93cac1a2f4
Clarify: transportRequestId can only be provided via signature (#1378)
Clarify: transportRequestId can only be provided via signature
2020-09-30 14:29:46 +02:00
Florian Wilhelm
e8f49df6a3
Optionally use new go-based Whitesource step (#2079) 2020-09-30 08:56:16 +02:00
Kevin Hudemann
80250ab2b9
Extend piperPipelineStageInit to support init of Cloud SDK (#2062)
This change adds necessary functionality to support initialization of
Cloud SDK pipelines. In addition, it adds the support to check the
pipeline configuration for legacy configuration parameters.
2020-09-28 10:44:56 +02:00
Kevin Hudemann
a075526d15
Extend piperPipelineStageSecurity to run detectExecuteScan step (#2069)
This change adds the detectExecuteScan step to the
piperPipelineStageSecurity.
2020-09-28 09:56:57 +02:00
Marcus Holl
fd568c9174
do not swallow exception triggered inside SWA handling (#1839)
* do not swallow exception triggered inside SWA handling

--> write it to the log

The real change is in src/com/sap/piper/Utils.groovy
All the changes in the tests are dealing with mocking the echo method
used in the Utils class mentioned above.
2020-09-24 13:47:20 +02:00
Srinikitha Kondreddy
75e696ad7b
Add steps for cf space creation and deletion (#2049)
* [wip] Add steps for cf spaces creation and deletion

* Add tests

* Add cf space creation groovy file

* Fix shell script

* Fix shell script

* Add cloudFoundryCreateSpace command to command line controller

* Fix format

* Add cloudFoundryDeleteSpace command to command line controller

* Refactor cloudFoundryDeleteSpace step

* Add cloudFoundryDeleteSpace groovy file

* Add missing test

* Fix tests

* Add docu for cloudFoundryCreateSpace step

* Add docu for cloudFoundryDeleteSpace step

* Code review changes

Co-authored-by: Marcus Holl <marcus.holl@sap.com>
2020-09-24 11:30:25 +02:00
Christopher Fenner
b219fb6514
fix(typo): found by misspell (#2064)
* fix typos in step yamls

* fix typos in go files

* regenerate step code

* fix typos in md files

* fix typos in groovy files

* fix further typos
2020-09-24 07:41:06 +02:00
Marcus Holl
da147b16ce
dockerExecuteOnKubernetes: Make container limits configurable (#1993)
dockerExecuteOnKubernetes: Make container limits configurable
2020-09-23 13:08:43 +02:00