mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
3b2e42c74f
* add step containerExecuteStructureTest * include PR-review feedback * documentation
83 lines
3.0 KiB
Markdown
83 lines
3.0 KiB
Markdown
# containerExecuteStructureTests
|
|
|
|
## Description
|
|
|
|
In this step [Container Structure Tests](https://github.com/GoogleContainerTools/container-structure-test) are executed.
|
|
|
|
This testing framework allows you to execute different test types against a Docker container, for example:
|
|
|
|
* Command tests (only if a Docker Deamon is available)
|
|
* File existence tests
|
|
* File content tests
|
|
* Metadata test
|
|
|
|
## Prerequisites
|
|
|
|
Test configuration is available.
|
|
|
|
## Example
|
|
|
|
```
|
|
containerExecuteStructureTests(
|
|
script: this,
|
|
testConfiguration: 'config.yml',
|
|
testImage: 'node:latest'
|
|
)
|
|
```
|
|
|
|
## Parameters
|
|
|
|
| parameter | mandatory | default | possible values |
|
|
| ----------|-----------|---------|-----------------|
|
|
|script|yes|||
|
|
|containerCommand|no|``||
|
|
|containerShell|no|``||
|
|
|dockerImage|yes|`ppiper/container-structure-test`||
|
|
|dockerOptions|no|`-u 0 --entrypoint=''`||
|
|
|failOnError|no|`true`|`true`, `false`|
|
|
|pullImage|no||`true`, `false`|
|
|
|stashContent|no|<ul><li>`tests`</li></ul>||
|
|
|testConfiguration|no|||
|
|
|testDriver|no|||
|
|
|testImage|no|||
|
|
|testReportFilePath|no|`cst-report.json`||
|
|
|verbose|no||`true`, `false`|
|
|
|
|
Details:
|
|
|
|
* `script` defines the global script environment of the Jenkinsfile run. Typically `this` is passed to this parameter. This allows the function to access the [`commonPipelineEnvironment`](commonPipelineEnvironment.md) for storing the measured duration.
|
|
* `containerCommand`: Only for Kubernetes environments: Command which is executed to keep container alive, defaults to '/usr/bin/tail -f /dev/null'
|
|
* containerShell: Only for Kubernetes environments: Shell to be used inside container, defaults to '/bin/sh'
|
|
* dockerImage: Docker image for code execution.
|
|
* dockerOptions: Options to be passed to Docker image when starting it (only relevant for non-Kubernetes case).
|
|
* failOnError: Defines the behavior, in case tests fail.
|
|
* pullImage: Only relevant for testDriver 'docker'.
|
|
* stashContent: If specific stashes should be considered for the tests, you can pass this via this parameter.
|
|
* testConfiguration: Container structure test configuration in yml or json format. You can pass a pattern in order to execute multiple tests.
|
|
* testDriver: Container structure test driver to be used for testing, please see [https://github.com/GoogleContainerTools/container-structure-test](https://github.com/GoogleContainerTools/container-structure-test) for details.
|
|
* testImage: Image to be tested
|
|
* testReportFilePath: Path and name of the test report which will be generated
|
|
* verbose: Print more detailed information into the log.
|
|
|
|
## Step configuration
|
|
|
|
We recommend to define values of step parameters via [config.yml file](../configuration.md).
|
|
|
|
In following sections the configuration is possible:
|
|
|
|
| parameter | general | step | stage |
|
|
| ----------|-----------|---------|-----------------|
|
|
|script||||
|
|
|containerCommand||X|X|
|
|
|containerShell||X|X|
|
|
|dockerImage||X|X|
|
|
|dockerOptions||X|X|
|
|
|failOnError||X|X|
|
|
|pullImage||X|X|
|
|
|stashContent||X|X|
|
|
|testConfiguration||X|X|
|
|
|testDriver||X|X|
|
|
|testImage||X|X|
|
|
|testReportFilePath||X|X|
|
|
|verbose|X|X|X|
|