hadolintExecute¶
Executes the Haskell Dockerfile Linter which is a smarter Dockerfile linter that helps you build best practice Docker images.
Description¶
Executes the Haskell Dockerfile Linter which is a smarter Dockerfile linter that helps you build best practice Docker images. The linter is parsing the Dockerfile into an abstract syntax tree (AST) and performs rules on top of the AST.
Usage¶
We recommend to define values of step parameters via .pipeline/config.yml file.
In this case, calling the step is essentially reduced to defining the step name.
Calling the step can be done either in an orchestrator specific way (e.g. via a Jenkins library step) or on the command line.
library('piper-lib-os')
hadolintExecute script: this
piper hadolintExecute
Parameters¶
Overview - Step¶
Name | Mandatory | Additional information |
---|---|---|
script | (yes) | reference to Jenkins main pipeline script |
configurationFile | no | |
configurationPassword | no | pass via ENV, Vault or Jenkins credentials (configurationCredentialsId ) |
configurationUrl | no | |
configurationUsername | no | pass via ENV, Vault or Jenkins credentials (configurationCredentialsId ) |
customTlsCertificateLinks | no | |
dockerFile | no | |
reportFile | no | |
verbose | no | activates debug output |
Overview - Execution Environment¶
Orchestrator-specific only
These parameters are relevant for orchestrator usage and not considered when using the command line option.
Name | Mandatory | Additional information |
---|---|---|
containerCommand | no | |
containerShell | no | |
dockerEnvVars | no | |
dockerImage | no | |
dockerName | no | |
dockerOptions | no | |
dockerPullImage | no | |
dockerVolumeBind | no | |
dockerWorkspace | no |
Details¶
configurationFile¶
Name of the configuration file used locally within the step. If a file with this name is detected as part of your repo downloading the central configuration via configurationUrl
will be skipped. If you change the file's name make sure your stashing configuration also reflects this.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | .hadolint.yaml |
Secret | no |
Configuration scope |
|
Resource references | none |
configurationPassword¶
The password to authenticate
Scope | Details |
---|---|
Aliases | password |
Type | string |
Mandatory | no |
Default | $PIPER_configurationPassword (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: configurationCredentialsId reference to: password Vault resource: name: hadolintConfigSecretName default value: hadolintConfig Vault paths:
|
configurationUrl¶
URL pointing to the .hadolint.yaml exclude configuration to be used for linting. Also have a look at configurationFile
which could avoid central configuration download in case the file is part of your repository.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_configurationUrl (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
configurationUsername¶
The username to authenticate
Scope | Details |
---|---|
Aliases | username |
Type | string |
Mandatory | no |
Default | $PIPER_configurationUsername (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: configurationCredentialsId reference to: username Vault resource: name: hadolintConfigSecretName default value: hadolintConfig Vault paths:
|
containerCommand¶
Jenkins-specific: Used for proper environment setup.
Kubernetes only: Allows to specify start command for container created with dockerImage parameter to overwrite Piper default (/usr/bin/tail -f /dev/null).
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
containerShell¶
Jenkins-specific: Used for proper environment setup.
Allows to specify the shell to be executed for container with containerName.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
customTlsCertificateLinks¶
List of download links to custom TLS certificates. This is required to ensure trusted connections between Piper and the system where the configuration file is to be downloaded from.
Scope | Details |
---|---|
Aliases | - |
Type | []string |
Mandatory | no |
Default | $PIPER_customTlsCertificateLinks (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerEnvVars¶
Environment variables to set in the container, e.g. [http_proxy: "proxy:8080"].
Scope | Details |
---|---|
Aliases | - |
Type | map[string]string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerFile¶
Dockerfile to be used for the assessment.
Scope | Details |
---|---|
Aliases | dockerfile |
Type | string |
Mandatory | no |
Default | ./Dockerfile |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerImage¶
Name of the docker image that should be used. If empty, Docker is not used and the command is executed directly on the Jenkins system.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | hadolint/hadolint:latest-alpine |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerName¶
Kubernetes only: Name of the container launching dockerImage. SideCar only: Name of the container in local network.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | hadolint |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerOptions¶
Docker options to be set when starting the container.
Scope | Details |
---|---|
Aliases | - |
Type | []string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerPullImage¶
Set this to 'false' to bypass a docker image pull. Useful during development process. Allows testing of images which are available in the local registry only.
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | true |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerVolumeBind¶
Jenkins-specific: Used for proper environment setup.
Volumes that should be mounted into the docker container.
Scope | Details |
---|---|
Aliases | - |
Type | map[string]string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerWorkspace¶
Jenkins-specific: Used for proper environment setup.
Kubernetes only: Specifies a dedicated user home directory for the container which will be passed as value for environment variable HOME
.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
reportFile¶
Name of the result file used locally within the step.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | hadolint.xml |
Secret | no |
Configuration scope |
|
Resource references | none |
script¶
The common script environment of the Jenkinsfile running. Typically the reference to the script calling the pipeline step is provided with the this
parameter, as in script: this
. This allows the function to access the commonPipelineEnvironment
for retrieving, e.g. configuration parameters.
Scope | Details |
---|---|
Aliases | - |
Type | Jenkins Script |
Mandatory | yes |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
verbose¶
verbose output
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | false |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
configurationCredentialsId¶
Jenkins 'Username with password' credentials ID containing username/password for access to your remote configuration file.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Configuration scope |
|
Exceptions¶
None
Examples¶
hadolintExecute script: this