我有一个管道,它调用一个方法来收集构建信息,如下所示:
@NonCPS
List<Stage> getStage(rawBuild) {
def visitor = new PipelineNodeGraphVisitor(rawBuild)
def stages = visitor.pipelineNodes.findAll{
it.type == FlowNodeWrapper.NodeType.STAGE
}
List<Stage> stageInfo = [];
for (stage in stages){
if( stage.node.endNode ) {
def startTime = TimingAction.getStartTime( stage.node )
def endTime = TimingAction.getStartTime( stage.node.endNode )
stageInfo.add(new Stage(stage.displayName, startTime, endTime));
}
}
return stageInfo;
}
这个效果很好。但是,由于管道限制使用 NonCPS 注释,是否可以保留此功能并删除 @NonCPS 注释。