Jenkins 2.7 iniciar todos os trabalhos começando com uma palavra-chave como pipeline

0

Estou tentando iniciar todos os jobs começando com uma string predefinida como pipeline no Jenkins 2.7. Até agora eu consegui escrever este código groovy:

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
  }
 }
}

No entanto, em todos os lançamentos eu recebo java.io.NotSerializableException , e apenas um trabalho correspondente (de dois no momento) está sendo executado.

O que estou fazendo de errado? : (

    
por J. Doe 10.07.2016 / 00:10

1 resposta

1

Aqui está um exemplo, como eu faria isso:

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();
    }
  }
}

Eu comentei meu código, então isso deve ajudá-lo.

    
por 11.07.2016 / 01:25