'How to use Jenkins pipeline `options` correctly
Snippet generator created a properties block for me. First run reported
WorkflowScript: 1: The properties section has been renamed as of version 0.8. Use options instead. @ line 1, column 1.
pipeline {
Replacing properties to optionsresults with the following error:
Errors encountered validating Jenkinsfile:
WorkflowScript: 4: options can not be empty @ line 4, column 5.
options([$class: 'ThrottleJobProperty',
Here is the full jenkinsfile for reference
pipeline {
agent any
options([[$class: 'ThrottleJobProperty',
categories: ['xcodebuild'],
limitOneJobWithMatchingParams: false,
maxConcurrentPerNode: 0,
maxConcurrentTotal: 0,
paramsToUseForLimit: '',
throttleEnabled: true,
throttleOption: 'category']])
stages {
stage("Empty" {
steps {
echo "Do nothing"
}
}
}
}
Solution 1:[1]
TLDR
It's no longer possible to use custom $class in the options
Note that
[$class: 'Foo', arg1: 'something', ...]syntax can not be used, onlybooleanParam(...)and the like.
Full Options Syntax
- Description: Traditional
JobPropertys, such asbuildDiscarderordisableConcurrentBuilds, Declarative-specifc options, such asskipDefaultCheckout, and "wrappers" that should wrap the entire build, such astimeout. - Required: No
- Allowed In: Top-level
pipelineclosure only. - Parameters: None
- Takes a Closure: Yes
- Closure Contents: A sequence of one or more Declarative option or job property configurations, using
@Symbolnames for constructors.- Note that
[$class: 'Foo', arg1: 'something', ...]syntax can not be used, onlybooleanParam(...)and the like. - Note that the
parametersandpipelineTriggers@Symbols cannot be used here directly.
- Note that
Example:
options {
buildDiscarder(logRotator(numToKeepStr:'1'))
disableConcurrentBuilds()
}
Solution 2:[2]
its work for me.
properties([parameters([choice(choices: 'test\ndeploy', name: 'baranch')])])
pipeline{
agent any
stages{
stage('param check'){
when {
expression{
params.baranch == 'test'
}
}
steps{
echo "testing"
}
}
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Community |
| Solution 2 | nikhil |
