-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major
-
Component/s: lockable-resources-plugin, pipeline-build-step-plugin
-
None
-
Environment:Jenkins 2.249.1
I have a declarative-pipeline and am using a matrix to perform system tests. One of the axis of the matrix is name=PLATFORM (values=Windows, Linux).  I'd like to create a step with a lock on it based on the value of platform, hence, something like this:
matrix {
axes {
axis {
name = 'PLATFORM'
values = Windows', 'Linux'
}
}
options {
lock( label: "LOCK_${PLATFORM}", quantity: 1 )
}
stages {
...
// the above lock could also be applied to a stage within this stages block
}
}
If I read the documentation, I think this is supposed to work as the axis values are supposed to be able to be referenced from 'options' setup. However, when I run this, I get one of two errors:
- Referenced as "LOCK_${env.PLATFORM}" yields lock does not exist "LOCK_null"
- Referenced as "LOCK_${PLATFORM}" yields no such property "PLATFORM"
I have tried it at various levels - 1) as above, on the stages block, and 2) on a stage within the stages. They both fail in similar ways.
The intent here is that we would grab (or wait for) the LOCK_Windows or the LOCK_Linux as appropriate.
It seems like the axis value is not passed through to the options-block, or to the lock-command within the option. Â