Я пытаюсь получить доступ к данным номера редакции из плагина шага сборки, который пытаюсь разработать.
Изображение здесь
Мой плагин в настоящее время использует метод перформанса, поскольку все мои знания основаны на обучающих материалах и демо-плагине 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;
}
}
}