因此,我在jenkins中创建了一个带有侦听器的共享库,每次管道读取FlowNode时都会触发该侦听器,因此我可以在每个阶段,步骤等之前和之后运行groovy代码。
我可以在这样的步骤中调用共享库:
pipeline {
agent any
stages {
stage('prepare') {
steps{
prepareStepsWrapper()
}
}
stage('step1') {
steps {
echo 'step1'
}
}
stage('step2') {
steps {
echo 'step2'
}
}
stage('step3') {
steps {
echo 'step3'
// fail on purpose
sh 'notfoundexecutablelol'
}
}
stage('step4') {
steps {
echo 'step4'
}
}
}
post{
always{
println env.getEnvironment()
}
}
}
效果很好!
使用这种方法,“准备”阶段需要过滤掉,因此我切换到options指令:
pipeline {
agent any
options {
prepareStepsWrapper()
}
stages {
stage('step1') {
steps {
echo 'step1'
}
}
...
}
}
但是管道失败
WorkflowScript:4:无效的选项类型“ prepareStepsWrapper”
tl; dr;如何在options指令中加载共享库?