Jenkins'te aynı anda birden fazla işi nasıl yeniden kurabilirim?


9

Jenkins Rebuild Plugin'i tek bir Rebuild düğmesi ile parametreli bir yapı çalıştırmak için kullanıyorum . Ancak düzinelerce parametrelenmiş işi (seçili veya aynı klasörden) yeniden çalıştırmam gerektiğinde, yine de verimli değildir.

Son kullanılan parametreleri kullanarak aynı anda birden fazla işi yeniden çalıştırmanın daha basit bir yolu var mı (sonunda farklı eklenti kullanarak)?


2
Çoklu yeniden yapılan bir eklentinin farkında değilim. Ama belki farklı bir yaklaşım almayı ve herhangi bir başarısız yapının kendini yeniden denediği (bazı yapılandırmaya göre) yeniden deneme tabanlı bir çözüm kullanmanızı önerebilirim. Bu, birden fazla yeniden inşa etme ihtiyacını gereksiz kılar (en azından bazı durumlarda).
Assaf Lavie

Yanıtlar:


8

İşleri birbirine bağlamak ve adım adım paralel ya da sırayla yürütmek için bir boru hattı kullanabilirsiniz .
Her parametreye ardışık düzen komut dosyasından çağırırken ilgili parametreleri iletebilirsiniz.
O zaman sadece tek bir boru hattı işi yeniden oluşturmanız gerekir. İşleri ortak bir yapı adıyla birlikte bir değişken aracılığıyla da bağlayabilirsiniz.

build job: 'buildjob1', parameters: [
  [$class: 'StringParameterValue', name: 'BUILD_NAME', value: ${env.JOB_BASE_NAME}-${env.BUILD_NUMBER}"], 
  [$class: 'StringParameterValue', name: 'FIXEDPARAM', value: 'some-string'],
  [$class: 'StringParameterValue', name: 'PARAM1', value: "${PARAM1}"]
]

1

Ayrıca, parametre nesnelerinin bir listesini oluşturabilir ve ardından bunu oluşturma adımına aktarabilirsiniz:

def paramsMap = [:]
paramsMap['param1'] = 'value1'
paramsMap['param2'] = 'value2'
def paramsObjects = []
paramsMap.each {
  key, value ->
    paramsObjects.push([$class: 'StringParameterValue', name: key, value: value])
}
build job: jobName, parameters: paramsObjects

ParamsObjects şöyle görünecektir:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.