Jak odbudować wiele zadań jednocześnie w Jenkins?


9

Używam wtyczki Jenkins Rebuild do wykonywania sparametryzowanych kompilacji za pomocą jednego przycisku Rebuild . Jednak gdy muszę ponownie uruchomić dziesiątki sparametryzowanych zadań (wybranych lub z tego samego folderu), nadal nie jest to wydajne.

Czy istnieje prostszy sposób (ewentualnie użycie innej wtyczki), aby ponownie uruchomić wiele zadań jednocześnie przy użyciu ostatnio używanych parametrów?


2
Nie znam wtyczki, która umożliwia wielokrotną przebudowę. Ale mogę zasugerować, aby zastosować inne podejście i zastosować rozwiązanie oparte na ponownej próbie, w przypadku której każda niepoprawna kompilacja ponawia próbę (w zależności od konfiguracji). To spowodowałoby konieczność wielokrotnej przebudowy zbędnej (przynajmniej w niektórych przypadkach).
Assaf Lavie

Odpowiedzi:


8

Możesz użyć potoku do powiązania ze sobą zadań, wykonując je równolegle lub sekwencyjnie za pomocą kroków.
Możesz przekazać odpowiednie parametry do każdego zadania, wywołując je ze skryptu potoku.
Następnie wystarczy odbudować pojedyncze zadanie potokowe. Możesz także powiązać zadania ze wspólną nazwą kompilacji poprzez zmienną.

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

Możesz również zbudować listę obiektów parametrów, a następnie przekazać ją do kroku kompilacji:

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 wyglądałby tak:

[
    [$class:StringParameterValue, name:param1, value:value1],
    [$class:StringParameterValue, name:param2, value:value2]
]
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.