2012-03-21 8 views
5

Mam skrypt bash, który wygląda tak:Jenkins - wykonanie skryptu przed budynku, a następnie mieć potwierdzenia użytkownika do budowania

#!/bin/sh 
previousRelease=`git describe --tags --match "release*" origin/release` 
git diff --name-status $previousRelease..origin/release 

Czy istnieje sposób mający Jenkins wykonać ją jako część procesu kompilacji ? Celem jest wyświetlenie listy plików, które zmieniły się od czasu ostatniej wersji, jako ręcznego kroku, aby potwierdzić, że wydanie powinno wzrosnąć. Użytkownik, który wywołał kompilację, musi przeczytać dane wyjściowe, a następnie potwierdzić, że wydanie powinno nastąpić.

Odpowiedz

2

Większość rzeczy można wykonać w Jenkins , ale jeśli jest to najlepszy sposób, należy odpowiedzieć na kolejne pytanie:.

Aby rozwiązać ten problem, użyłbym podejścia z dwoma zadaniami, jednym do sprawdzenia diff (hock, który należy do repozytorium git). Drugim zadaniem jest wykonanie właściwego wydania.

Diff check praca

1 Utwórz zadanie typu freestyle z projektem typu build "Execute Shell" i uruchomić powyżej skryptu. Dodaj kilka wydruków na końcu dziennika, aby utworzyć klikalny link, aby ręcznie uruchomić zadanie zwolnienia z bieżącym argumentem git-id jako.

Wystarczy drukowania URL w wyjścia konsoli pozwoli klikalne tak:

export GITID=`git log -n| grep and sed or awk something` 
echo http://jenkins.example.com:8888/job/releaseme/buildWithParameters?label=$GITID&parameters=build 

stworzą interfejs użytkownika akceptują zmiany żądanej.

Zadanie uwolnienie

2 Utwórz innej pracy (powyżej Przypuszczałem pan nazwał ją releaseme) umożliwiają pracę mają jeden parametr jako argumentu (zaznaczyć „Ta kompilacja jest parametryzowane”) sprawiają niech argumentem będzie git -jeśli chciałbyś wydać. Utwórz swój skrypt zwalniający w tym zadaniu.

Powiązane problemy