Я пытаюсь запустить все задания, начиная с предустановленной строки, как конвейер в Jenkins 2.7. Пока мне удалось написать этот отличный код:

node {
    jobs = hudson.model.Hudson.instance.getAllItems(FreeStyleProject)
for (job in jobs) {
      // here was an "if" statement: if (job.getFullName() =~ /my regex/) {
      stage job.getFullName()
      build job: job.getFullName(), propagate: false
  }
 }
}

Однако при каждом запуске я получаю java.io.NotSerializableException , и выполняется только одно соответствующее задание (из двух в данный момент).

Что я делаю неправильно? :(

1 ответ1

1

Вот пример, как я бы это сделал:

import hudson.model.*;

// get all jobs which exists    
jobs = Hudson.instance.getAllItems(FreeStyleProject);

// iterate through the jobs
for (j in jobs) {

  // define a pattern, which jobs I do not want to run
  def pattern = 'trunk';
  def m = j.getName() =~ pattern;

  // if pattern does not match, then run the job
  if (!m) {
    // first check, if job is buildable
    if (j instanceof BuildableItem) {
      // run that job
      j.scheduleBuild();
    }
  }
}

Я прокомментировал мой код, так что это должно помочь вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .