У меня есть следующий конвейер:
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
что мне сделать, чтобы запустить этот плагин после завершения сборки и получить результат.