Jak wypromować konkretny numer kompilacji z innego zadania w Jenkins?

Zainstalowałem Promoted Build Plugin z Jenkins i teraz mam problemy z wypromowaniem kompilacji z istniejącej pracy. Oto scenariusz:

  1. Istnieje istniejące Nightly Build zadanie, które działa każdej nocy, wykonując wszystkie testy i metryki potrzebne;

  2. Istnieje Deploy Build, która przyjmuje parametr ${BUILD_NUMBER} i wdraża kompilację, która ma odpowiedni ${BUILD_NUMBER} z Nightly Build

    • powiedz, że [Nightly Build] przebiegł i został pomyślnie zbudowany artefakt # 39
    • Teraz mogę po prostu uruchomić [Deploy Build] przechodząc w #39 jako parametr
      • artefakty z [Nightly Build] # 39 zostaną wdrożone
Jak na razie dobrze. Teraz jest część, w której chcę dodać Build Promotions...

To jest dokładnie to, czego potrzebuję, aby osiągnąć

Czy istnieje sposób na promowanie Nightly Build #39 (zauważ, że był już zbudowany przed ) Z Deploy Build? A może nawet z innego miejsca, szczerze mówiąc jestem trochę zagubiony proszę.:(

Nie widzę ich z wyraźną relacją Upstream/Downstream, ponieważ nie mają: zawsze uruchamia tę kompilację, a następnie drugą podczas wykonywania - [Deploy Build] jest wykonywany czasami tylko i nie zawsze po [Nightly Build] .

Author: Matheus, 2013-02-28

1 answers

Aktualizacja od wersji 2.23 Parametryzowanej wtyczki wyzwalającej:

W wersji 2.23+ zachowanie zmienione (Dzięki AbhijeetKamble za wskazanie). Każdy parametr, który jest przekazywany przez predefiniowane parametry sekcji wywołania (zbuduj) praca musi istnieć w powołanym (deploy) praca. Ponadto obowiązują ograniczenia parametrów wywołanego zadania, więc jeśli wywołany parametr zadania jest wyborem , to musi mieć wszystkie możliwe wartości (z promocji) wstępnie wypełnione. Lub po prostu użyj tekst typ parametru.

Rozwiązanie

Tak, mam dokładnie taką samą konfigurację: zadanie build (oparte na commitach SVN) i ręcznie wykonane deploy zadanie. Gdy użytkownik wybierze dowolną kompilację z zadania build (w tym starsze Kompilacje), może przejść do linku Promotion Status i wykonać różne promocje deploy , na przykład Deploy to DEV, wdrożenie do QA , itp

Oto jak skonfigurować promocję na build job:

  • będziesz potrzebował tych wtyczek: Parametryzowana Wtyczka wyzwalająca, promowane buduje Plugin
  • będziesz także musiał skonfigurować domyślną archiwizować artefakty w tym zadaniu budowania.
  • zaznacz znak Promuj buduje kiedy
  • Define Name "Deploy to DEV "
  • zgodnie z kryteriami zaznacz zaznaczenie tylko w przypadku ręcznego zatwierdzenia
  • under Actions use Trigger / call builds on other projects
  • W projekty do zbudowania wpisz nazwę swojego wdrożyć tutaj
  • zaznacz zaznaczenie Blokuj dopóki wyzwalane projekty nie zakończą swoich kompilacji
  • Zaznacz tę kompilację jako nieudaną, jeśli wywołana kompilacja jest gorsza lub równa: FAILURE (adjust according to statuses of your deploy job)
  • predefiniowane parametry (Kod A)

Kod A:

Server=IP_of_my_dev_server`  
Job=$PROMOTED_JOB_NAME`  
BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>

Powyżej, w sekcjipredefiniowane parametry , nazwa po lewej stronie = to parametry zdefiniowane w zadaniu deploy. A po prawej stronie = są wartości, które zostaną przypisane do tych parametrów podczas wykonywania tej promocji. Definiuje trzy parametry Server, Job i BuildSelection.

Parametr Server= jest moim własne, ponieważ moje zadanie wdrożenia może wdrożyć na wielu serwerach. Jeśli jednak twoje zadanie deploy jest zakodowane na twardo, aby zawsze wdrożyć do określonej lokalizacji, nie będzie to potrzebne.

Parametr Job= jest wymagany, ale nazwa param zależy od tego, co skonfigurowałeś w swoim deploy job (wyjaśnię tam konfigurację). Wartość $PROMOTED_JOB_NAME musi pozostać taka, jaka jest. Jest to zmienna środowiskowa, której proces promocji jest świadomy i odwołuje się do nazwy Twojego [29]}build job (ta, w której konfigurowany jest proces promocji)

Wymagany jest parametr BuildSelection=. Cała linia musi pozostać taka, jaka jest. Przekazana wartość to $PROMOTED_NUMBER, o czym po raz kolejny zdaje sobie sprawę promocja. W twoim przykładzie będzie to #39.

Blokada do momentu zakończenia kompilacji projektów spowoduje, że proces promocji będzie czekał do momentu zakończenia zadania deploy. Jeśli nie, Proces promocji uruchomi zadanie wdrożenia i zrezygnuj z sukcesu. Oczekiwanie na zakończenie zadania deploy mA tę zaletę, że jeśli zadanie deploy nie powiedzie się, gwiazda promocji będzie również oznaczona jako failure.

(jedna mała uwaga: gwiazda promocji pojawi się pomyślnie podczas wdrożyć zadanie jest uruchomione. Jeśli wystąpi błąd wdrożenia, zostanie on zmieniony na błąd dopiero po zakończeniu zadania deploy . Logiczne... ale może być trochę mylące, jeśli spojrzeć na gwiazdę promocji przed zakończeniem wdrożenia)

Jak skonfigurować wdrożyć zadanie
  • będziesz potrzebował Wtyczka Kopiuj artefakty
  • pod ten build jest parametryzowany
  • Konfiguracja parametru typu Choice (lub Text) Z name Server (Nazwa ta musi być zgodna z konfiguracją w predefiniowanych parametrach promocji w poprzedniej sekcji)
  • Choices: podaj listę możliwych adresów IP serwera to będzie używane przez predefiniowane parametry promocji w poprzedniej sekcji (patrz uwaga aktualizacja poniżej )
  • Konfiguracja parametru typu Choice (lub Text) Z name Job (nazwa ta musi być zgodna z konfiguracją w predefiniowanych parametrach promocji w poprzedniej sekcji)
  • opcje: wprowadź nazwę zadania build jako domyślną. jest to potrzebne tylko wtedy, gdy uruchomisz wdrożyć zadanie ręcznie. Gdy zadanie wdrożyć zostanie uruchomione w ramach promocji, promocja dostarczy wartość (Job= z predefiniowanych parametrów, które skonfigurowaliśmy). Ponadto, jeśli nie ma wartości przekazanej z predefiniowanych parametrów promocji , zostanie użyta wartość pierwszego wyboru. Jeśli masz relację 1 do 1 pomiędzy zadaniami build i deploy, możesz pominąć parametr Job= w konfiguracji promocji.
  • Aktualizacja: od wersji 2.23 Sparametryzowanego wyzwalacza , dostępne opcje w deploy konfiguracja zadania musi mieć wszystkie możliwe wartości pochodzące z predefiniowanych parametrów promocji. Jeśli nie chcesz tego limitu, użyj "Text" zamiast "Choice"
  • Konfiguracja parametru typu budowanie selektora dla artefaktu kopiującego Z nazwa : BuildSelection
  • domyślny Selektor: najnowszy udany build
  • pod Zbuduj kroki
  • Konfiguracja kopiowanie artefaktów z innego projektu
  • W Nazwa projektu wpisz ${Job}
  • W które zbuduj wybierz Specified by a build parameter
  • W Nazwa parametru wpisz BuildSelection (bez ${...}!)
  • Skonfiguruj resztę odpowiednio dla artefaktów, które będą kopiowane z zbuduj zadanie do Rozmieść obszar roboczy zadania
  • użyj skopiowanych artefaktów wewnątrz zadania deploy jako musisz w celu wdrożenia

Więc teraz, dzięki powyższemu zadaniu deploy, możesz uruchomić je ręcznie i wybrać numer kompilacji z zadania build, który chcesz wdrożyć (ostatnia kompilacja, ostatnia udana, według numeru kompilacji, itp.). Prawdopodobnie masz już skonfigurowany bardzo podobnie. Promocja na zadaniu build W zasadzie wykona to samo zadanie i dostarczy numer kompilacji, na podstawie tego, jaka promocja została wykonana.

Daj mi znać, jeśli mam jakieś problemy z instrukcjami.

 115
Author: Slav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:23