Как получить доступ к номеру ревизии SVN предыдущих сборок в плагине jenkins buildstep? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь получить доступ к данным номера редакции из плагина шага сборки, который пытаюсь разработать.

Изображение здесь

Мой плагин в настоящее время использует метод перформанса, поскольку все мои знания основаны на обучающих материалах и демо-плагине hello world.

@Override
public void perform(Run<?, ?> run, FilePath workspace, Launcher 
    launcher, TaskListener listener) throws IOException {

Сервер jenkins использует плагин subversion , и именно так я пытался получить доступ к номеру ревизии ранее.

Я видел, что с помощью класса Abstract Build я могу получить доступ к методу getChangeSets

Плагин subversion расширяет ChangeLogSet.Entry для добавления метода getRevision (). То, что я говорю, не факт, а мое текущее понимание исследования доступа к этим данным ревизии.

Проблема в том, что я использую Run, а не параметр AbstractBuild. Насколько я понимаю, AbstractBuild практически устарела и существует только для обратной совместимости. Как я могу получить данные номера ревизии от jenkins, в моем плагине buildstep? Можно ли использовать одновременно Run и AbstractBuild?

Обратите внимание, что я не ищу номер ревизии предыдущих сборок, а номер ревизии любого числа предыдущих сборок. В настоящее время я получаю другие предыдущие данные сборки с помощью этого метода.

    private void checkBuilds(Run run){
        boolean first = true;
        Job job = run.getParent();
        SortedMap<Integer,Run> builds = job.getBuildsAsMap();
        for (Map.Entry<Integer, Run> prevRun : builds.entrySet()) {
            if (first){
                first = false;
                currentBuild = prevRun.getValue().getNumber();
                M2ReleaseArgumentsAction args = 
    prevRun.getValue().getAction(M2ReleaseArgumentsAction.class);
                currentRelease = args.getReleaseVersion(); // maven release 
    version i.e. '1.5.7'
            }
            else if (prevRun.getValue().getCause(ReleaseCause.class) != 
    null){
                M2ReleaseArgumentsAction args = 
    prevRun.getValue().getAction(M2ReleaseArgumentsAction.class); // Checks        
    if the build is a maven release.  
                if (args != null) {
                    prevBuild = prevRun.getValue().getNumber();
                    prevRelease = args.getReleaseVersion(); // maven 
    release version i.e. '1.5.7'
                } else { // builds by old versions of the m2 plugin
                    prevRelease = "No Release Version";
                    prevBuild = prevRun.getValue().getNumber();
                }
                break;
            }
        }
    }
...