2013-03-15 7 views
6

Mam zadanie Jenkins, które ma wykonać część powłoki, w której mam zmienną BUILD, która jest dynamicznie wypełniana.Przekazywanie zmiennej z powłoki na email-ext w Jenkins

Po wykonaniu kompilacji, chcę przekazać tę zmienną do wtyczki email-ext Domyślna zawartość, aby móc pokazać jej wartość.

Próbowałem kilka sposobów bez powodzenia:

  1. Przechodząc tę ​​$ {BUILD} Domyślna wartość w treści nie jest rozpoznawana (tylko zmienne środowiskowe Jenkins są widoczne w tym kontekście)
  2. Defined nowy Globalna zmienna środowiska Jenkins i próbowała nadpisać wartość początkową w kontekście powłoki, co najwyraźniej nie jest możliwe.

Każdy pomysł, jak to zrobić?

Odpowiedz

1

Użyj EnvInject Plugin, aby odczytać zmienną z pliku, po napisaniu tego pliku w "części powłoki".


Generalnie, zmienne środowiskowe nigdy iść z powrotem do procesu potomnego procesu nadrzędnego, jest podstawową cechą rodziny systemów operacyjnych Windows i Unix. Dziecko zawsze otrzymuje kopię środowiska rodzicielskiego, a jeśli je modyfikuje, modyfikuje swoją własną kopię (która jest następnie kopiowana do dowolnego procesu potomnego, jeśli zostanie uruchomiona, itd.). Ale aby odzyskać zmiany, należy użyć innej metody, np. Dziecko zapisujące pożądane zmiany w pliku, które następnie są analizowane przez nadrzędne, które następnie mogą edytować na podstawie własnego środowiska.

+4

Nie ma takiej potrzeby. Znalazłem prostszy sposób na zrobienie tego. Wtyczka Email-ext obsługuje wstępny skrypt e-mailowy, w którym można napisać kod Groovy. Tak więc w części powłoki zapisuję dane w pliku i przy pomocy skryptu Groovy, czytam te dane i przesyłam do zmiennej MimeMessage: Plik stringContents = new Plik ("file.txt") tekst msg .setText (fileContents, "UTF-8"); –

+1

Czy możesz udostępnić pełny, groovy skrypt, aby załadować zmienną z pliku – user2400564

1

budować można przekazać parametry do poczty elektronicznej za pomocą wtyczki ext:

$ {ENV, Var = "kapitalizowane: var_name"}

W ten sposób widzę wartość zmiennej w otrzymanym mailu.

+2

Czy możesz rozszerzyć ten fragment, dołączając konkretny przykład? – Taegost

+1

Przykład może pomóc zrozumieć, jak to działa. –

+0

W tym konkretnym przypadku '$ {ENV, var =" BUILD "}' powinno wykonać zadanie. – toppur