我有以下管道:
pipeline {
agent any
stages {
stage('test') {
steps {
sh 'echo "im a build"'
}
}
}
post {
always {
myPlugin()
}
}
}
现在在myPlugin
中,我想要一个构建结果。尝试这样做:
public class MyPluginPublisher extends Notifier implements SimpleBuildStep {
@DataBoundConstructor
public MyPluginPublisher() {
}
@Override
public MyPluginDescriptor getDescriptor() {
return (MyPluginDescriptor) super.getDescriptor();
}
@Override
public boolean needsToRunAfterFinalized() {
return true;
}
@Override
public Action getProjectAction(AbstractProject<?, ?> project) {
return null;
}
@Override
public void perform(@Nonnull Run<?, ?> build, @Nonnull FilePath filePath, @Nonnull Launcher launcher, @Nonnull TaskListener taskListener) throws IOException {
taskListener.getLogger().format("build result " + build.getResult() + "\n");
taskListener.getLogger().format("isBuilding " + build.isBuilding() + "\n");
}
}
如您所见,我使用一种needsToRunAfterFinalized
方法来表示该插件应等待构建结束,但是构建结果为空。
打印以下输出表单日志:
build result null
isBuilding true
在构建完成并获得结果后,我应该怎么做才能运行此插件。
答案 0 :(得分:0)
如前所述,后期构建步骤是构建过程的一部分。我想知道为什么不使用:
pipeline {
agent any
stages {
stage('test') {
steps {
sh 'echo "im a build"'
}
}
}
post {
success {
echo 'build success'
}
failure {
echo 'build failed'
}
}
}