构建后运行Jenkins插件

时间:2018-06-30 11:52:02

标签: jenkins jenkins-plugins jenkins-pipeline

我有以下管道:

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

在构建完成并获得结果后,我应该怎么做才能运行此插件。

1 个答案:

答案 0 :(得分:0)

如前所述,后期构建步骤是构建过程的一部分。我想知道为什么不使用:

pipeline {
agent any
stages {
    stage('test') {
        steps {
            sh 'echo "im a build"'
        }
    }
}
post {
    success {
        echo 'build success'
    }
    failure {
        echo 'build failed'
    }
 }
}